Creating Refinable and Sortable Managed Properties in Sites and Site Collections in SharePoint 2013
Someone was asking today about how to create a managed property at the site or site collection level that is refinable and sortable. When you go into Schema Management at the site collection level you may notice that you can create new managed properties, but only simple ones that are based on string and you they have several attributes that you cannot change, such as whether they are sortable or refinable. That is by design in SharePoint 2013; if you need to create new managed properties with those attributes then it can only be done at the Search Service Application level. However, we do ship some "pre-baked" managed properties out of the box to enable this scenario, and in this post I'll try and explain how you use them.
If you go into the Site Settings and look at the Managed Properties in the Schema, do a search for Refinable in the list of managed properties. What you'll find is that there are a BUNCH of them, of all different data types. For example RefinableDouble, RefinableString, RefinableDate, RefinableDecimal, and so forth and so on. For each one of these we actually include several properties - for example, RefinableDouble00 through RefinableDouble00 through RefinableDouble09, RefinableDate00 through RefinableDate19, etc. The reason we include these managed properties, and multiple instances of them, is because they are all defined as refinable and sortable, and they map to different data types.
So let's go back to the scenario we started with - suppose you create a new Choice field in your site collection called FavoriteColor. You want to create a managed property for this field that is both refinable and sortable. The first thing you want to do, as I've mentioned many times, is create a Site Column for the field; this will automatically create a crawled property for you. Now in order to use it as a refinable and sortable field, you need to "connect" it with one of the Refinable* properties I mentioned above. In this case, we will use RefinableString00. So to do this connection, I'll go into Site Settings and click on Schema. Then I'll type in refinables in the managed property list so I find RefinableString00. If you click on that, you'll see that it is already mostly configured exactly like I want - refinable and sortable are both true. There's really only two things I need to do - map my crawled property and give it an alias.
I'm going to give it an alias so I can refer to it using a name that makes sense, rather than RefinableString00. So, in the alias field I type the name I want to refer to this crawled property by, which is "FavoriteColor". Next, to connect this with the my crawled property I simply click on the Add Mapping button. It brings up a list of all my crawled properties, and from there I can select ows_FavoriteColor, which I got when I added my Site Column (Note: your crawled property names may vary, but you can always find it based on the Title you gave the field). All I need to do now is save my changes and I'm done - I have a sortable and refinable property for my custom schema in my site or site collection, with a friendly name that I can use to refer to it by. Here's a quick screen shot with all of these values filled in so you can see how it looks.
Comments
Anonymous
January 01, 2003
Hi Steve. Brilliant as allways :-) Could you give us a step by step on how to use managed metadata in the managed properties. In 2010 this was simple but I have yet to find a way in 2013. I have found how to add my managed properties to the refiner panel, I have found how to create managed properties, but I have not found a way to create managed properties based on terms in my Managed metadata catalog. Is this possible? Best regards // Thomas Balkeståhl - MVP SharePoint ServerAnonymous
January 01, 2003
The comment has been removedAnonymous
January 01, 2003
I am trying to using this approach on custom properties I have added to the User Profile which each map to a term set in a similar way to OOTB Department. This I notice has two managed property entries in the /searchCenter search schema
Hence I followed your blog post and mapped the crawl properties
RefinableString00 is mapped to People:UserBU and ows_UserBU and has an alias of UserBU
Did a full search and updated the mapped properties entry in my custom display template, attached to People Results Web Part
'UserBU':'UserBU'
only I am getting no values displayed under the user and of course no refinement panel...does this look correct to you?Anonymous
December 04, 2013
Hi, I tried the exact same steps, but it seems that the return value of the Managed property is blank. Can you adviseAnonymous
April 10, 2014
Again Nice Post. It helping me a lot in Search.
Thanks a lot Steve!
Keep posting...nice article related to searchAnonymous
April 25, 2014
Thanks for this. Allows our business analysts to set up refiners on demo sites without needing operations folk.Anonymous
August 07, 2014
Great post! Thank you!Anonymous
August 25, 2014
Thank you for the Great post.Anonymous
September 18, 2014
The comment has been removedAnonymous
October 08, 2014
Are site columns mapped to refinables unique per site collection? What is the implication if you search across site collections (e.g. refinablestring01 is mapped to a different site column in SiteCollectionA and a different column in SitecollectonB?Anonymous
November 05, 2014
Which permissions are needed to modify managed properties? I'm a farm admin and a site collection admin, but could not change the managed properties on "Schema".