当我们使用SharePoint 2010所提供的搜索功能时,在搜索结果的左侧,有一个搜索结果优化区域。通过这个区域,用户可以进一步的精简搜索结果。比如,仅仅显示类型为Word文件的搜索结果,或者仅仅显示作者为“kaneboy”的搜索结果。
这个优化区域内置了最常见的几个精简项目,包括类型(搜索结果是何种类型)、来源(搜索结果来自于哪个网站)、作者、修改日期等。如果在文档管理系统中使用了SharePoint 2010新的托管元数据服务中的术语来定义了企业关键字,那么这些关键字也会自动出现在优化区域中。
除了内置的这些精简项目,管理员可以添加更多的额外精简项目。不过如果希望某个属性能作为一个精简项目,管理员需要首先将它定义为搜索服务中的托管属性。
比如,在文档系统中,我们定义了一个专门的字段,“技术等级”,来描述所有技术文档的难度。这个字段的内部名称是“TechLevel”。
首先,在SharePoint 2010搜索管理中对所有内容进行一次完全爬网。如果爬网引擎发现了爬网内容有一个额外的字段,它会将这个字段作为已爬网属性存储到搜索数据库中。
接下来,我们需要将这个已爬网属性定义为托管属性。从SharePoint 2010管理中心里面,通过“管理服务应用程序 – Search Service Application – 元数据属性”,就打开了元数据属性管理界面。点击“新建托管属性”。
为新托管属性取名为“TechLevel”,然后,我们需要将它与已经存在的那个已爬网属性关联起来。点击“添加映射”按钮,然后搜索“TechLevel”(因为这是那个字段的内部名称),找到这个已爬网属性。将它与新托管属性建立起映射。
最后这个新托管属性的定义如下。
定义好了托管属性之后,对内容源进行第二次完全爬网!这是完全必要、不可或缺的,否则,内容的这个托管属性中将不会包含任何有效的值。
完成第二次爬网之后,打开搜索结果页面,编辑此页面,找到页面上的“精简面板”Web部件,编辑它的属性。这个Web部件的作用就是显示页面上的优化区域。
展开这个Web部件属性中的“优化”区域,将“筛选器类别定义”中的内容全部复制出来。把“使用默认配置”选项清除,否则我们做的任何修改都不会生效。
随便找一个XML文本编辑器,按照下面的格式,创建一段XML文本。在下面的示例XML中,“MappedProperty”属性的值需要设置为托管属性的名称(TechLevel),“Title”属性决定了这个优化选项显示在页面左侧的抬头。
<Category Title=”技术等级”
Description=”文档的技术等级”
Type=”Microsoft.Office.Server.Search.WebControls.ManagedPropertyFilterGenerator”
MetadataThreshold=”1″
NumberOfFiltersToDisplay=”4″
MaxNumberOfFilters=”20″
SortBy=”Frequency”
SortDirection=”Descending”
SortByForMoreFilters=”Name”
SortDirectionForMoreFilters=”Ascending”
ShowMoreLink=”True”
MappedProperty=”TechLevel“
MoreLinkText=”显示更多”
LessLinkText=”显示更少”/>
把上面的XML文本,插入到从Web部件属性面板“筛选器类别定义”中复制出来的XML文本里面,需要插入到“<FilterCategories>”这个节点里面。
然后将新的XML文本内容复制回Web部件属性面板“筛选器类别定义”文本框,确定即可。保存并刷新页面,就能看到大功告成了。