0

I have created a custom search results page with a refinement panel webpart. The webpart picks up our managed metadata and allows users to refine their results based on the metadata selected. However, the refinement panel doesn't seem to recognize the hierarchical structure of the metadata.

For instance, we have the following hierarchy: Places > Parks > National Parks. All national parks are parks and all parks are places. When using the refinement webpart, users see:

  • Any Category
  • Places
  • Places:Parks
  • Places:Parks:National Parks
  • Places:Parks:City Parks

If they click on Places, anything marked as parks, national parks, or city parks is excluded.

The behavior I want to see is by selecting Places, anything marked as parks, national parks or city parks would be displayed (along with many other places.) If the user instead clicked on parks, anything marked as parks, national parks or city parks would be displayed.

1

We ran into the same problem. I have heard that FAST Search will respect the hierarchy and filter results as you would imagine it should work, but we are using SharePoint 2010 and SharePoint enterprise search.

Our hierarchy was Make/Model/Series, and our solution was to have one "main" Make/Model/Series field that appeared on forms, that the users interacted with in order to add or delete terms from the item, and then have three other fields (individual Make, Model, and Series) that do not appear in forms, but are used for the refinement panels.

We created an ItemUpdated event receiver that would read the terms in the main Make/Model/Series field, and add the appropriate terms from the hierarchy to the item's individual Make, Model and Series fields. Then in the refinement filter definitions, we only set up filters for the individual fields, and omitted the main Make/Model/Series field.

I.E. if a user added a term that corresponded to a series, say "E140" (for a Toyota Corolla E140) to the main Make/Model/Series field, the event receiver would then populate the Make field with "Toyota", the Model field with "Corolla", and the Series field with "E140". Then if another item got tagged with only "Corolla" in the Make/Model/Series field, the event receiver would add only "Toyota" to the Make field and "Corolla" to the Model field, and nothing to the Series field. Then both items would show up if the user filtered on Make = Toyota or Model = Corolla, but only the one that got tagged with the series would show up if the user filtered on Series = E140.

Slightly complicated, but it achieves the desired result.

  • Thanks for your detailed response, Dylan. I'm setting this as the answer because the feature I'm looking for is not available in SharePoint 2010/Enterprise search out of the box. I hope we will be moving to 2013 soon as I understand it supports many of the features of FAST -- and hopefully this one as well. – dmkerr Sep 10 '13 at 16:07
  • Even in SharePoint 2013 it is not available, If you select a parent term set search will not display items tagged with parent and its children. – Ali Nov 25 '13 at 1:25
-1

Use TaxonomyFilterGenerator. This will search both parent and children

We're looking for long answers that provide some explanation and context. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed.

  • Can you please add more details about how to use this control, it would make your answer very much more helpful – Robert Lindgren Sep 6 '14 at 12:21

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.