0

We have a page on a public website where we're surfacing a list of Staff which is stored in a "Catalog". The staff catalog has a lookup column pointing at a Department catalog. The Lookup is joining on a Department "ID" value and not the actual Department name itself.

We have a form and search web part on a page and are returning Staff that match against First Name, Last Name, Phone Number and Job Title using the Search API. We also need to be able to return matches for Department but this is not proving possible as the search index does not seem to contain the value from the Lookup list, only the ID value.

So my question is does anyone know how to use SharePoint 2013 search to return items from one list based on the query keyword appearing in the associated lookup item? Or am I going to have to first query the lookup list and get matching IDs and then build those IDs into a second query against the original list? I hope not...

Thanks.

1

As far as I have seen, SharePoint will not return results with linked data, child data, or anything hierarchical. You have to do that in one of two ways. You could use the BDC to perform the join and present a single "record" for search to crawl, or you could use the Content Processing call out in 2013 to augment the metadata for the result, essentially, create a web service that resolves the ID into a Department.

  • Thanks Matthew, I had looked into the Content Processing as an option and that seems pretty powerful. Looks like I'll either have to go down that road or take the double query approach where I first pull back any matching IDs and then submit those IDs as part of the main query. Thanks again. – j.strugnell Sep 25 '13 at 8:08
  • I have used the "double query" approach with success in SharePoint 2010. Look at CP, it's not very hard to develope a great solution. – Matthew McDermott Sep 25 '13 at 23:55
0

SharePoint don't automatically index the values for lookup, managed metadata, and calculated column. You can create a lookup site column for "Catalog", then map to any RefinableString. Search will be able to bring back the value for that managed properties.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.