使用搜索范围
在 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() |
检索指定网站的范围。 |
开始范围搜集。 |
|
StopCompilation() |
停止范围搜集。 |
更新对此对象所做的任何更改。 |
ScopeCollection 类是范围的集合对象。
Scope 类表示单个范围。表 2 说明了 Scope 类属性。
表 2. 范围类属性
名称 |
说明 |
---|---|
AlternateResultsPageUrl() |
为搜索此范围指定一个不同的结果页。 |
CompilationState() |
范围的搜集状态。可能的值包括:
|
CompilationType() |
范围的搜集类型。可能的值包括:
|
Description() |
范围的说明。 |
Name() |
范围名称。 |
OwningSite() |
范围所属的网站。 |
Scope 类的 Rules() 属性包含一个 ScopeRuleCollection 对象,这是包含规则集的类,每个规则均作为 ScopeRule 对象。通过应用这些规则包含或排除该范围中的内容。ScopeRule 类是这些规则的基类。有三个类继承自 ScopeRule,如表 3 中所述。
表 3. ScopeRule 派生类
名称 |
说明 |
---|---|
包含搜索索引中的所有内容的范围规则。FilterBehavior 方法设置为“Include”,并且无法更改。 |
|
URLScopeRule |
范围规则,根据显示 URL 应用于项目,并根据文件夹、主机名或 URL 的域/子域进行匹配。 |
根据属性值的比较应用于项目的范围规则。 |
要管理范围的显示,请使用 ScopeDisplayGroup 类。ScopeDisplayGroupCollection 类包含所有显示组,并用于管理搜索系统的显示组。