We were having some issues dealing with single and multi-value fields in SharePoint and how FAST interprets them for the index. The distinction between them is actually quite important and can have an impact when it comes down to refining your search results.
In our example, we were dealing with a multi-value site column lookup field in a list. FAST does some interesting things with multi-value and single value fields. For example, let’s use a Crawled Property called ows_region. If the field for the item is multi-valued, FAST will index all of those values in a Crawled Property called ows_region() with a variant type of 4127. If the field for the item is a single value, FAST will crawl this as a property called ows_region(text) with a variant type of 31.
These two crawled properties reference the same site column, however their content is separated. Since all of the multi-valued fields are in ows_region() and all of the single values are in ows_region(Text), we have to map both of them to a managed property if we want to cover all of the values.
To test this, we created three managed properties: owscountry (ows_countries(text)) – Single Value, multicountry (ows_countries()) – multi-value, and combinedcountry (ows_countries() and ows_countries(text)) – single and multivalue.
Using FS4SP Query Logger, we were able to see that the combinedcountry managed property would return all of the values, while owscountry and multicountry would only return single and multi-values respectively.
So on the FAST end, we have to ensure that we map all of the relevant Crawled Properties to Managed Properties to ensure that we have a full refiner that includes both Crawled and Managed Properties. Also we need to ensure that the “Include values from all crawled properties mapped” button is checked.
Pretty simple and straightforward. Perhaps slightly redundant, but at least the question is answered… yes you need both Crawled Properties in order to create a Managed Property that covers both multi-value and single values.
In our example, we were dealing with a multi-value site column lookup field in a list. FAST does some interesting things with multi-value and single value fields. For example, let’s use a Crawled Property called ows_region. If the field for the item is multi-valued, FAST will index all of those values in a Crawled Property called ows_region() with a variant type of 4127. If the field for the item is a single value, FAST will crawl this as a property called ows_region(text) with a variant type of 31.
These two crawled properties reference the same site column, however their content is separated. Since all of the multi-valued fields are in ows_region() and all of the single values are in ows_region(Text), we have to map both of them to a managed property if we want to cover all of the values.
To test this, we created three managed properties: owscountry (ows_countries(text)) – Single Value, multicountry (ows_countries()) – multi-value, and combinedcountry (ows_countries() and ows_countries(text)) – single and multivalue.
Using FS4SP Query Logger, we were able to see that the combinedcountry managed property would return all of the values, while owscountry and multicountry would only return single and multi-values respectively.
So on the FAST end, we have to ensure that we map all of the relevant Crawled Properties to Managed Properties to ensure that we have a full refiner that includes both Crawled and Managed Properties. Also we need to ensure that the “Include values from all crawled properties mapped” button is checked.
Pretty simple and straightforward. Perhaps slightly redundant, but at least the question is answered… yes you need both Crawled Properties in order to create a Managed Property that covers both multi-value and single values.