We have added the following managed properties in our SPOnline tenant using the RefinableStringxx propeties.

enter image description here

Using these mapped managed properties, we have also created a search page to help our users refine the projects listings. However the refiner labels are not friendly. They are in that pipe delimited format. We are trying to resolve this but hoping you may have some direction for us. Thanks!

enter image description here


You can use the automatically created crawled properties but there are some rules you need to follow unless you want to write your own code. The details are outlined here: http://technet.microsoft.com/en-us/library/jj679902(v=office.15).aspx

Two point that I think are important:

"When you search for a crawled property, you may find two crawled properties that represent the same content. For example, a site column of type Date and Time named Created will during crawl discover two crawled properties: ows_Created and ows_q_DATE_Created. Crawled properties that begin with either ows_r, ows_q or ows_taxId are automatically created crawled properties. When you select a crawled property to map to a managed property, make sure that you don't map the automatically created crawled property. Instead, always map the crawled property that begins with ows_"


For properties that use the data type Managed Metadata, the alias must consist of the type code, owstaxId, followed by the property name. For example, for a property named Color that uses the Managed Metadata data type, the alias for the refinable managed property must be owstaxIdColor.

|improve this answer|||||
  • i was mapping to the ows_q_xxx properties which was causing the problem. Now it is fixed. Thanks! – ChiliYago Apr 2 '14 at 16:46

What you want to do is create a custom "Refiner Control Template". You can find them in All Files -> _catalogs -> master page -> display templates -> filters if you are in SharePoint Designer.

The key function you will want to look for is probably names "outputFilter" and rValue for the text that actually prints on the screen. Right before the text is rendered inside of the template, you can insert a function to

Probably something like

values = rValue.split("|"); // this splits the text based on the pipe

rValue = values[0]; // this brings back everything before the pipe

You can change which "Refiner Control Template" each refiner uses by editing the web part, and there is a menu option to customize refiners. In there you can select your custom filter.

|improve this answer|||||

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.