Manage refiners and refiner settings (FAST Search Server 2010 for SharePoint)
Applies to: FAST Search Server 2010
Refiners enable end-users to drill down into their search results based on managed properties that are associated with the indexed search items, such as creation date, author, and company names.
FAST Search Server 2010 for SharePoint supports two kinds of query refiners: deep refiners and shallow refiners.
Deep refiners
Deep refinement is based on the aggregation of managed property statistics for all of the search results. The indexer creates aggregation data that is used in the query matching process. The advantage of using deep refiners is that the refinement options will reflect all the search items matching a query. The number of matching search items is displayed in parentheses behind each refiner. This is usually the recommended mode, but defining many deep refiners may have a significant adverse effect on memory usage in the query matching component.
Important
Deep refiners that have many unique values will have significant adverse performance effect on internal I/O communication between the query matching node and the query processing node (if on different servers). If your installation has many index columns, this interface may become a bottleneck. In this case, consider using the configuration parameter CutoffMaxBuckets to limit the number of refinement bins to be evaluated on each index column.
Shallow refiners
Shallow refinement is based on the aggregation of managed property statistics for the top 100 results for a search query. The refinement result data is created during result processing. Because the refinement is limited to the top matching results, you may be unable to find results hidden deeper in the query results. However, this refinement option does not affect the indexing process and can therefore be applied immediately after it is enabled.
Shallow refiners will have significant adverse performance effect on the query processing node and will reduce the query performance. Consider using deep refiners instead.
Note
When you create a managed property, it is not refinement-enabled by default.
In this article:
Set a managed property as a refiner on the Search Results page
Update refiner settings for a managed property by using Windows PowerShell
Set a managed property as a refiner on the Search Results page
Setting a managed property as refiner on the Search Results page is a two-step process. First, you must enable the managed property as a refiner (deep or shallow), and then you must make it available in the web-front end.
You can also set a managed property as a refiner by using the graphical user interface (GUI). For more information, see Property Management (office.com).
To enable a managed property as deep refiner by using Windows PowerShell
Verify that you meet the following minimum requirements: You are a member of the FASTSearchAdministrators local group on the computer where FAST Search Server 2010 for SharePoint is installed.
On the Start menu, click All Programs.
Click Microsoft FAST Search Server 2010 for SharePoint.
Click Microsoft FAST Search Server 2010 for SharePoint shell.
At the Windows PowerShell command prompt, type the following command(s):
Set-FASTSearchMetadataManagedProperty -Name <Name> -RefinementEnabled <Flag>
Where:
<Name> is the name of the managed property to be set as a refiner enabled.
<Flag> is a Boolean indicating whether the managed property should be enabled as a refiner. Use $true if it should be enabled, $false if it should not be enabled.
Note
For managed properties of type Integer, you should not enable query refinement if the managed property may contain negative values. If a refinement bin (value range) contains negative values, it is not possible to drill down into this value range.
To enable a managed property as shallow refiner by using Windows PowerShell
Set the managed property as refiner-enabled by following the steps under To set a managed property as deep refiner by using Windows PowerShell
Get the managed property that you want to set as shallow refiner:
$mp = Get-FASTSearchMetadataManagedProperty -Name <ManagedProperty>
Where:
- <ManagedProperty> is the name of the managed property that you want to set as shallow refiner.
Get the refiner configuration:
$refiner = $mp.GetRefinerConfiguration()
Set the managed property as shallow refiner:
$refiner.RefinementType = "DeepRefinementDisabled"
Update the configuration:
$mp.SetRefinerConfiguration($refiner)
Verify that the configuration was changed:
$refiner >> RefinementType : DeepRefinementDisabled >> Divisor : >> Intervals : >> Resolution : >> Algorithm : >> DefaultValue : >> CutoffMaxBuckets : 1000 >> Anchoring : Auto
Note
Consider setting the RefinementType property to LatentRefinement if you want to prepare the index data structures for deep refinement, but you do not want to enable the feature yet for query evaluation. When using this option, the required data structures for deep refinement are not loaded into main memory, and it will therefore have no performance effect. The setting can later be changed to DeepRefinementEnabled to enable the feature. In that case, the change has an immediate effect (no requirement to re-index items).
To make a refiner available in the web front-end by using the graphical user interface
On the Search Center site, enter a search word and then click Search.
On the Search results page, click Site Actions, and then click Edit Page.
In the Refinement Panel Web Part, click the edit arrow to display the web part menu, and then click Edit Web Part.
In the Refinement section, clear the Use Default Configuration check box.
In the Refinement section, click in the field Filter Category Definition and then click the ellipsis (…) button.
This opens the Text Editor window for the Refinement Web Part's FilterCategoriesDefinition property. You can modify the XML directly in this window, but you may find it easier to copy the code to a file and then edit that file by using an application such as Visual Studio 2010.
Add your refiner to the file before the end tag for the FilterCategories element. The following is an example of an XML element for a refinement enabled managed property named wineterms. The Category Title, in this example, Wine terminology, will be displayed on the Search Results page as the refiner title.
<Category Title="Wine terminology" Description="Use this filter to restrict results by items related to wine" Type="Microsoft.Office.Server.Search.WebControls.ManagedPropertyFilterGenerator" MetadataThreshold="1" NumberOfFiltersToDisplay="4" MaxNumberOfFilters="20" ShowMoreLink="True" MappedProperty="wineterms" MoreLinkText="show more" LessLinkText="show fewer" ShowCounts="Count"/>
Note
The value of the MappedProperty attribute must be in lowercase, even if the property name includes uppercase letters.
For more information about the refiner properties, see the XML schema definition of the Category element.
After you finish editing the file, you can copy the modified code back into the Text Entry window and save your changes.
See also
Update refiner settings for a managed property by using Windows PowerShell
Refiners have different settings based on the type of the managed property they are enabled for. Refiner settings for managed properties of type Text will differ from refiner settings for managed properties that use numeric types.
The managed property size exists by default, and is used for the size of the documents. It is of type Integer and is refinement-enabled by default. The indexed values for size are in bytes, and by default the refiner is configured to display the value as kilobytes (Refiner.divisor=1024
.) In the following example, the refiner is changed to display values in megabytes instead (1024*1024=1048576).
Verify that you meet the following minimum requirements: You are a member of the FASTSearchAdministrators local group on the computer where FAST Search Server 2010 for SharePoint is installed.
On the Start menu, click All Programs.
Click Microsoft FAST Search Server 2010 for SharePoint.
Click Microsoft FAST Search Server 2010 for SharePoint shell.
At the Windows PowerShell command prompt, type the following command(s):
$size = Get-FASTSearchMetadataManagedProperty -Name size $sizerefiner = $size.GetRefinerConfiguration() $sizerefiner.Divisor = 1048576 $size.SetRefinerConfiguration($sizerefiner)