Introduction
This tip shows you how to search by managed metadata field or term in SharePoint.
The single most important task of SharePoint is to find information. There are two main strategies to achieve this:
- Train people to look for information in one particular location.
Similar to a real world: if you want to find an apple in the grocery store, you go to Fresh Produce aisle. - Make information searchable the way people usually look for such kind of information.
Like on the Internet, whenever you have a question, you just Google it. You don’t need to know where the information is stored, as long as you remember how to reach a search engine, and as long as the data is searchable.
In the SharePoint world, it is a combination of both strategies that forms Information Architecture. To put it simply, SharePoint Information Architecture represents sites and libraries organization and structure, along with metadata and managed metadata.
Since SharePoint 2010 release, SharePoint Information Architecture got richer, thanks to a new feature – Enterprise Taxonomy. Taxonomies provide a logical, hierarchical structure of metadata that can be used to classify information consistently. Enterprise Taxonomy delivers consistent vocabulary improving the capability to classify and categorize industry specific entities and terms in the enterprise. The proper implementation of Enterprise Taxonomy provides common language within the company across departments. Mutual agreement on the words meaning in Enterprise dictionary simplifies processes of information tagging and information retrieving.
As you can see, Enterprise Taxonomy plays a crucial role in finding information on the portal. For the purpose of this tip, let’s assume that Information Tagging Architecture is already implemented.
The technical focus of the tip is on Information Retrieving Architecture. We chose the Q&A format to address specific common questions that occur during Enterprise Taxonomy implementation.
Q: How can I search by the Term value to find all places where this Term has been used?
Context
I have created a Term and used it in managed metadata column. For example, I have a managed metadata column "Project Tags" in the library. I have an item in the library with value "TransitIQ
" in the Project Tags column.
I want to be able to search by TransitIQ
to find that item.
A: Once you have created a managed metadata column, you have to run a crawl.
The crawl will automatically create crawled property and managed property that is mapped to the managed metadata column.
All you have to do is to check "Include values for this property in the search index". It will enable the search by the Term title.
In case you need to search by Term ID, use a managed property value like this:
owsTaxIdProject
is a managed property and Term ID is the actual Term of ID (in this case - TransitIQ
).
There are two questions that might occur at this time:
Q: Why do I need to search by Term ID?
A: You may want to build a custom webpart to show all related content based on the select Term.
Q: How do I know Term ID?
A: One way to find a Term ID is to go to the site collection hidden list Lists/TaxonomyHiddenList
.
Another popular option is to use a search refiner with the Term that is interesting for you:
Select the value in the refiner and then look at the URL of the search page:
An easy way to decode this - URL Decoder/Encoder
Please, note:
If you have several metadata columns in the several lists that are mapped to the same Term set, but you call them differently (internal names in the different lists are not the same), the crawler will create several managed properties.
You want them to be united.
Find all crawled properties that have been created based on your managed metadata.
Hint: The name of crawled property has a pattern: ows
prefix means – Custom Metadata; taxId
refers to the type of column – Managed Metadata.
Now you can find your crawled managed metadata columns by searching within crawled properties by name taxId
.
Once you identified crawled properties for managed metadata columns, you can map the crawled properties to the one Managed
property:
Good luck!