使用搜索范围

在 Microsoft Office SharePoint Portal Server 2003 中,搜索范围基于内容源并被绑定到爬网。内容一次只能在一个范围中。在 Microsoft Office SharePoint Server 2007 中,搜索范围被扩展为表示项目的集合,这些项目基于该范围内项目之间的一个公共元素。例如,除了表示来自特定内容源的内容(“门户内容”)的搜索范围之外,现在可以定义诸如“****创作的所有文档”或“所有与市场营销相关的文档”等搜索范围。范围不再绑定到内容爬网,这样当您创建范围时,无需在该范围中的项目可供搜索之前等待内容的重新爬网。

有两种类型的搜索范围:基本和复合。

基本范围

在爬网程序给内容编制索引时,会自动通过范围插件生成基本 范围,而且此类范围基于被编制索引的内容的特定属性。

基本范围的一个示例是,“<特定的作者姓名> 创作的所有项目”。

默认情况下,范围插件为以下项目创建范围:

  • 显示 URL

  • 网站(域、子域、主机名)

  • 作者

  • 所有内容(用来包含所有内容)

  • 全局查询排除(用来排除内容)

复合范围

复合 范围是基本范围的布尔组合。它们可以在范围组内组合在一起并排序。

搜索范围对象模型

可以在 Microsoft.Office.Server.Search.Administration 命名空间中找到用于管理搜索范围的类,此命名空间位于 Microsoft.Office.Server.Search.dll 中。

下面是搜索范围对象模型的图解。

搜索范围对象模型

搜索范围对象模型

使用 Scopes 类来管理整个范围系统。表 1 说明了此类中可用的方法。

表 1. 范围类方法

名称

说明

GetDisplayGroup()

检索给定网站的指定范围显示组。

GetDisplayGroupForSite()

检索指定网站的范围显示组。

GetScope()

检索给定网站的指定范围。

GetScopesForSite()

检索指定网站的范围。

StartCompilation

开始范围搜集。

StopCompilation()

停止范围搜集。

Update

更新对此对象所做的任何更改。

ScopeCollection 类是范围的集合对象。

Scope 类表示单个范围。表 2 说明了 Scope 类属性。

表 2. 范围类属性

名称

说明

AlternateResultsPageUrl()

为搜索此范围指定一个不同的结果页。

CompilationState()

范围的搜集状态。可能的值包括:

  • Compiled

  • Empty

  • Invalid

  • NeedsCompile

  • NeedsRecompile

  • QueryExpanded

CompilationType()

范围的搜集类型。可能的值包括:

  • AlwaysCompile

  • ConditionalCompile

Description()

范围的说明。

Name()

范围名称。

OwningSite()

范围所属的网站。

Scope 类的 Rules() 属性包含一个 ScopeRuleCollection 对象,这是包含规则集的类,每个规则均作为 ScopeRule 对象。通过应用这些规则包含或排除该范围中的内容。ScopeRule 类是这些规则的基类。有三个类继承自 ScopeRule,如表 3 中所述。

表 3. ScopeRule 派生类

名称

说明

AllContentScopeRule

包含搜索索引中的所有内容的范围规则。FilterBehavior 方法设置为“Include”,并且无法更改。

URLScopeRule

范围规则,根据显示 URL 应用于项目,并根据文件夹、主机名或 URL 的域/子域进行匹配。

PropertyQueryScopeRule

根据属性值的比较应用于项目的范围规则。

要管理范围的显示,请使用 ScopeDisplayGroup 类。ScopeDisplayGroupCollection 类包含所有显示组,并用于管理搜索系统的显示组。