Stage 13: Plan to use refiners for faceted navigation - Part II

This is a blog post in the series “How to set up a product-centric website in SharePoint Server 2013.”  In this series, I'll use data from a fictitious company called "Contoso" to show you how to use search features to set up a website based on product catalog data.
Note: Most of the features described in this series are not available in SharePoint 2013 Online.

For an overview of the blog posts in this series, go to How to set up a product-centric website in SharePoint Server 2013.

 

In our previous blog post, we identified the refiners we want to use for faceted navigation, and determined how we want the refiner values to be displayed. In this blog post we'll learn:

 

Start stage 13

About enabling a managed property to be a refinable managed property

The first thing we have to do when configuring refiners for faceted navigation is to enable the managed properties that we want to use as refiners to be refinable managed properties.

Depending on your permission level, you can do this from two places:

To refiner-enable a managed property from Requires permission level
Central Administration Search service application administrator
Site Collection Administration Site collection administrator

There’s a reason why this can be done from two places: if you are working with catalog content (let's say you’re a content manager), you’re not likely to have Search service application administration level rights, that is, you won’t have access to Central Administration. However, you’re very likely to have Site collection administrator permissions.

In an earlier blog I described how content managers can easily add content to the search index without having to pester Search service application administrators. So now that everyone’s happy, we don't want to jeopardize this happiness by making content managers dependent on a Search service application administrator to enable refiners.

In this blog post I’ll only describe the procedure as it would be performed by a Site collection administrator (content manager). For information on how Search service application administrators can enable managed properties to be a refinable managed property, see Enable automatically created managed properties as refiners in SharePoint Central Administration.

 

About refiner-enabled managed properties

At the beginning of this post, I stated "The first thing we have to do when configuring refiners for faceted navigation, is to enable the managed properties that we want to use as refiners to be refinable managed properties." Well, turns out that Site collection administrators (content managers) can't do this because they don't have the required permission level. They do, however, have the permission level to map a crawled property to a refiner-enabled managed property.

Confused? I don't blame you, so let me try to explain.

Search service application administrators, who have access to Central Administration, can configure many things directly on a managed property. For example, the screenshot below shows how they can change the property named RedBrand to be refinable by selecting either Yes – active, or Yes - latent from the Refinable menu.

Edit property in Central Administration

If we look at the same property from the perspective of a Site collection administrator, who is configuring the property on the site collection level, not only is the property name grayed out, but the Refinable choice menu is locked (it might not show as well on the screenshot, but trust me; the field is locked).

Edit property in site collection

Luckily, there are a large number of "empty" managed properties that by default are enabled as refiners. By "empty" I mean that a crawled property is not mapped to it. This means that Site collection administrators can map a crawled property to one of these refiner-enabled managed properties without having to rely on a Search service application administrator.

The table below gives an overview of the managed properties that are enabled as refiners by default.

Managed property name Data type for mapping Display format for refiner values
RefinableDate00 - RefinableDate19 Values contain dates Intervals
RefinableDecimal00 - RefinableDecimal09 Values contain numbers with maximum three decimals Intervals
RefinableDouble00 - RefinableDouble09 Values contain numbers with more than three decimals Intervals
RefinableInt00 - RefinableInt49 Values are whole numbers Intervals
RefinableString00 - RefinableString99 Values are strings. This includes values that use the data type Text, Person or Group, Managed Metadata, Choice and Yes/No List

In the previous blog post, we listed the properties that we wanted to use as refiners for the categories "Audio" and "Cameras."  Now we need to add a fourth column to this table. For each refiner that we want to use, we need to define a refiner-enabled managed property. We’ll then map the crawled property that represents the refiner to each of these refiner-enabled managed properties.

Refiner to use Property type Display format for refiner values Refiner-enabled managed property
 Price  Number Intervals TBD
 Brand  Text  List TBD
 Color  Text  List TBD
 Zoom  Number  List TBD
 Screen size  Number  List TBD
 Mega pixels  Number  List TBD
 Max ISO  Number  List TBD

 

About defining the refiner-enabled managed properties to use in our Contoso scenario

For refiners of type Text, it’s pretty straight forward. For these, we can use two of the RefinableString managed properties. This is highlighted in the table below.

Refiner to use Property type Display format for refiner values Refiner-enabled managed property
 Price  Number Intervals TBD
 Brand  Text  List RefinableString01
 Color  Text  List RefinableString02
 Zoom  Number  List TBD
 Screen size  Number  List TBD
 Mega pixels  Number  List TBD
 Max ISO  Number  List TBD

When it comes to numeric refiners, things get a bit trickier because we have to consider what type of numeric values we are dealing with, and how we want the refiner values to be listed. Let's start with the numeric refiner Price. In our Contoso scenario, the values for Price are whole numbers. A RefinableInt managed property can be used for whole numbers, and it displays refiner values in intervals. As I showed in the previous blog post, we want to display our Price refiner as intervals, so for this refiner, we can use one of the RefinableInt managed properties. This is highlighted in the table below.

Refiner to use Property type Display format for refiner values Refiner-enabled managed property
 Price  Number Intervals RefinableInt01
 Brand  Text  List RefinableString01
 Color  Text  List RefinableString02
 Zoom  Number  List TBD
 Screen size  Number  List TBD
 Mega pixels  Number  List TBD
 Max ISO  Number  List TBD

The remaining numeric refiners that we still need to determine are a mix of whole numbers and decimal numbers. This could imply that we should use either RefinableInt or RefinableDecimal managed properties. However, because we want to display the refiner values in a list, we can't use either of them. Instead, we have to use RefinableString managed properties. It might seem a bit counter-intuitive that we use managed properties that are meant for string values to display numeric refiner values, but this is the only way that we can display refiner values in a list.

So, our final list of refiner-enabled managed properties that we want to use looks like this:

Refiner to use Property type Display format for refiner values Refiner-enabled managed property
 Price  Number Intervals RefinableInt01
 Brand  Text  List RefinableString01
 Color  Text  List RefinableString02
 Zoom  Number  List RefinableString03
 Screen size  Number  List RefinableString04
 Mega pixels  Number  List RefinableString05
 Max ISO  Number  List RefinableString06

Now that we’ve taken care of all that planning, it's finally time do some configuring.

 

Next blog post in this series Stage 14: Configure refiners for faceted navigation

 

Additional Resources
Plan refiners and faceted navigation Scenario: Create SharePoint sites by using cross-site publishing in SharePoint Server 2013