原文地址:http://blog.joycode.com/kaneboy/archives/2011/04/30/116195.joy
什么是搜索范围?当我们使用百度的时候,就能看到它们。为了帮助用户更精确的找到自己想要的内容,可以定义一些搜索范围,这样用户通过使用搜索范围,就能告诉搜索引擎,自己想要搜索的内容的范围,以得到更精准的结果。
SharePoint Server 2010内置的搜索功能也支持搜索范围。SharePoint 2010已经内置定义好了两个搜索范围:“所有网站”和“人员”。前者包括所有内容源中的所有内容,后者则只包含了所有用户(来自于用户配置文件)。如果需要,管理员也可以添加额外的搜索范围,帮助用户更方便的搜索到希望的内容。
要创建一个自定义搜索范围,并使其显示在SharePoint 2010搜索中心,需要进行一些额外的设置。本文将演示为SharePoint 2010系统添加一个“Word文档”搜索范围,并使用户可以通过搜索中心,方便的使用这个搜索范围来进行Word文档的搜索。
(一) 在搜索服务应用程序中添加搜索范围
打开SharePoint 2010管理中心,通过“管理服务应用程序 – Search Service Application”打开搜索管理界面。点击搜索管理页面左侧的“范围”链接,然后点击“新建范围”。
为新范围取名为“Word文档”,然后在目标结果页面中输入“WordResults.aspx”这个页面。别担心,稍后我们会在搜索中心网站中,把这个页面创建出来。这个页面将用来显示“Word文档”搜索范围的搜索结果。
接下来,为“Word文档”范围添加规则。规则定义了哪些搜索结果是属于某个搜索范围的。规则有多种类型,既可以使用URL匹配(比如某个路径下的内容属于某个范围),也可以使用属性(比如凡是作者等于kaneboy的内容属于某个范围),或内容源(比如凡是来自某个BCS外部数据内容源的内容属于某个范围)来定义规则。
由于只希望扩展名为“.doc”和“.docx”的文件出现在“Word文档”搜索范围中,所以需要定义一个属性查询类别的规则,并添加一个“FileExtension = docx”的属性查询条件。在规则行为中,选择“包含”。如法炮制,为“Word文档”范围再添加一个“FileExtension = doc”的规则。定义好这两个规则的搜索范围设置界面如下图。
SharePoint 2010搜索服务是定时更新范围设置,所以为了让我们修改的范围设置立即生效,可以在搜索管理首页,点击“立即开始更新”链接。
为了让新建的搜索范围可用,可以在定义好了范围之后,对所有内容源进行一次完全爬网。
(二) 在网站集中使用搜索范围
在网站集中,就可以直接使用我们在搜索服务应用程序中定义的范围。打开网站集顶级网站的网站设置页面,在“网站集管理”区域中点击“搜索范围”链接,应该就能看到我们之前定义好的“Word文档”范围。
点击“显示组”,就能看到“搜索下拉列表”和“高级搜索”这两个组。分别编辑它们,把“Word文档”范围包含进去。
然后在网站设置页面中的“网站集管理”区域中点击“搜索设置”,打开网站集搜索设置页面。通过在“网站集搜索中心”里面输入一个搜索中心网站的路径,可以将网站集的搜索与一个搜索中心连接起来。比如,如果在这个网站集里面,使用“search”路径和“企业搜索中心”模板创建了一个搜索中心网站,就可以将“search/pages”填入到“网站集搜索中心”文本框。这样,当用户在网站集里面使用搜索功能时,都会被自动导向到这个搜索中心。
“网站集搜索下拉列表模式”用来定义是否在网站集的搜索框左侧,显示范围下拉框。如果选择“显示范围下拉列表”,就会将范围下拉框显示在搜索框左侧。
完成这些设置后,回到网站首页,就会看到上面所做的这些设置是如何影响网站集里面的搜索功能的。
最后,由于指定了网站集的搜索会和路径为“search”的搜索中心网站连接起来,接下来我们就来创建这个搜索中心网站。
(三) 在搜索中心网站使用搜索范围
首先,我们需要在网站集里面,使用“企业搜索中心”模板,在指定的“search”路径上(以与网站集设置中指定的路径想匹配)创建一个搜索中心网站。
打开新建的搜索中心网站,你会看到在这里并不会自动出现我们定义好的“Word文档”范围。
打开搜索中心网站的“所有网站内容”页面,能看到在这个网站里面,有2个非常关键的列表,“搜索结果中的选项卡”和“搜索页中的选项卡”。
打开“搜索页中的选项卡”列表,添加一个新项目,在“选项卡名称”中输入“Word文档”,在“页面”中输入“WordSearch.aspx”(别担心,我们会稍后再创建这个页面)。
如法炮制,在“搜索结果中的选项卡”列表中添加一个新项目,“选项卡名称”指定为“Word文档”,“页面”指定为“WordResults.aspx”(我们也会稍后创建它)。
接着我们就来创建之前指定的“WordSearch.aspx”和“WordResults.aspx”页面。前者是用来进行搜索的页面,后者是用来显示搜索结果的页面。
打开搜索中心网站中的“页面”文档库,点击Ribbon区域的“新建文档 – 页面”。
为新页面指定一个标题,“搜索Word文档”,将页面的URL指定为“WordSearch.aspx”(与前面所指定的路径相对应),页面布局选择“搜索框”。
如法炮制创建第2个页面,页面标题为“Word文档搜索结果”,页面URL为“WordResults.aspx”,页面布局选择“搜索结果”。
创建了“WordSearch.aspx”和“WordResults.aspx”页面之后,还需要对它们进行一些设置。打开“WordSearch.aspx”页面,进入到编辑状态,然后编辑“搜索框”Web部件的属性。
将“搜索框”Web部件的“目标搜索结果页面URL”属性的值修改为“WordResults.aspx”。这样当用户在当前页面搜索时,才会将搜索请求发送到“WordResults.aspx”页面。
接着打开“WordResults.aspx”页面,进入到编辑状态,同样修改页面上的“搜索框”Web部件,将“目标搜索结果页面URL”属性的值修改为“WordResults.aspx”(也就是当前页面)。
接着修改页面上“搜索核心结果”Web部件的属性。
将“搜索核心结果”Web部件的“范围”属性修改为指定的“Word”文档范围。
这样我们就完成了对这两个页面的修改。最后要记得将它们签入为主要版本,否则普通用户会无法访问它们。
回到搜索中心网站的首页,就会看到现在有了第三个范围,“Word文档”。当点击这个范围时,页面实际上会跳转到“WordSearch.aspx”页面。当使用这个范围进行搜索时,搜索结果会显示在“WordResults.aspx”页面。
除了使用搜索中心网站,当在网站集里面进行搜索时,由于网站集搜索已经与搜索中心网站连接了起来,用户的搜索请求也会被转向到搜索中心网站。
总结
通过定义自定义的搜索范围,用户可以更加方便的使用SharePoint 2010所提供的搜索功能。但是要让自定义搜索范围能正常工作,管理员需要在搜索服务应用程序、网站集和搜索中心网站中,进行一系列的设置。