索引架构 (FAST Search Server for SharePoint)

上次修改时间: 2015年3月9日

适用范围: SharePoint Server 2010

本文内容
已爬网属性
托管属性
全文本索引
排名配置文件
查询优化
更新架构模型
索引架构对象模型接口简介

已爬网属性

已爬网属性是一些元数据,从内容源提取这些元数据可使数据能用于搜索。已爬网属性通常由内容 SSA 或其他 FAST Search Server 2010 for SharePoint 连接器报告,并且可在项处理期间由 IFilter 或属性提取器创建。

已爬网属性由 Name、Propset 和 VariantType 的参数唯一定义。

使用为给定项发现的已爬网属性名和值来填充两个特定的托管属性,如下所示:

  • crawledpropertynames  保存包含指定项值的发现的已爬网属性。

  • crawledpropertiescontent  包含 crawledpropertynames 中每个已爬网属性的值。

一些发现的已爬网属性不映射到这些托管属性。自动为发现的已爬网属性的内容编制索引的缺点是,并非所有内容都与搜索相关。可能存在导致出现此情况的一些原因;例如,已爬网属性可能提供敏感信息或包含对相关性或重新调用产生负面影响的数据。如果满足以下条件,已爬网属性将映射到 crawledpropertiescontent:

  • 已爬网属性具有映射到字符串或字符串列表的变量类型。

  • 通过将已知提供了不需要的搜索索引内容的已爬网属性的 IsMappedToContents 属性设置为 False 来排除这些属性。

  • 由于每个已爬网属性都属于一个类别(由其 Propset 决定),该类别具有可设置新的已爬网属性的 IsMappedToContents 属性的默认值的布尔值属性 (MapToContents)

因此,如果已爬网属性是字符串,并且其 IsMappedToContents 属性为 True,则应可在 crawledpropertiescontent 中搜索已爬网属性的内容。

每个已爬网属性都属于已爬网属性类别,此类别是基于用于从内容中提取元数据的 IFilter 和内容源对已爬网属性进行的高级分组。

以下是类别的示例:

  • 业务数据  与使用Business Data Connectivity (BDC) Service检索的内容关联的元数据。

  • 邮件  与 Microsoft Exchange Server 关联的元数据。

  • Office  包含在 Microsoft Office 文档(如 Microsoft Word、Microsoft Excel 和 Microsoft PowerPoint)中的元数据。

  • 人员  与 SharePoint Server 2010 中的人员配置文件关联的元数据。其中的大部分元数据还会从 Active Directory 和 SharePoint 信息映射到各种托管属性。

  • Web  与网页关联的 HTML 元数据。

已爬网属性类别可能包含多个属性集。表 1 介绍了与已爬网属性相关的接口。

表 1. 与已爬网属性相关的接口

接口

说明

CrawledProperty

指定已爬网属性。

Category

可使用 Category 接口指定类别中所有已爬网属性常用的默认映射行为。

可使用 Schema 接口的 AllCategories 属性检索属性类别的集合。可使用 Category.GetAllCrawledProperties 方法检索给定类别的 CrawledProperty 对象的集合。

可使用 Category.CreateCrawledProperty 方法创建已爬网属性。

ManagedProperty

托管属性是可在查询结果中搜索或检索的元数据。

可使用 ManagedProperty.GetMappedCrawledProperties 方法检索表示映射到特定托管属性的已爬网属性的 CrawledProperty 对象的集合。

可使用 ManagedProperty.SetCrawledPropertyMappings 方法配置已爬网属性映射。

托管属性

托管属性是可通过其他方法(例如,在搜索结果中显示数据)进行搜索或使用的元数据。

默认索引架构提供一组从已爬网属性到托管属性的映射。在使用内容 SSA 进行爬网时,将修改默认映射以适应常见内容格式。特定内容源或其他索引连接器可公开其他更适用于您内容的已爬网属性。

可以将一个托管属性与一个或多个全文本索引关联。您必须使用全文本索引以获得查询的排名结果。

可以为一个托管属性启用查询优化,以便将此属性中的数据添加为查询结果页上的深化选项。

可以为托管属性配置命中突出显示摘要。它是在每个查询结果的搜索结果页上出现的托管属性的摘要。此摘要会显示来自包含查询文本的项的摘要,并会将突出显示格式应用于查询文本。可以使用 ManagedProperty.SummaryType 属性启用此功能。默认情况下,为 body 属性和 title 属性配置命中突出显示摘要。

表 2 介绍与托管属性相关的接口。

表 2. 与托管属性相关的接口

接口

说明

ManagedProperty

指定一个托管属性。

ManagedPropertyCollection

指定托管属性的集合。可使用 ManagedPropertyCollection.Create 方法创建托管属性。

CrawledProperty

已爬网属性是一些元数据,从内容源提取这些元数据可使数据能用于搜索。

可使用 ManagedProperty.SetCrawledPropertyMappings 方法配置已爬网属性映射。

FullTextIndex

利用全文本索引,可同时在多个托管属性中进行查询。

可使用 ManagedProperty.GetFullTextIndexMappings 方法将托管属性映射到一个或多个全文本索引。

RankProfile

可使用排名配置文件指定如何对查询结果进行相关性排名。

可使用 RankProfile.GetManagedPropertyBoosts 方法来关联托管属性提升配置。

可使用 RankProfile.GetQualityComponents 方法来关联用于质量排名的托管属性。

RefinerConfiguration

利用查询优化,可以使用为一个查询结果计算的聚合统计数据来优化该查询结果。

可通过将 ManagedProperty.RefinementEnabled 属性设置为 True 来将查询优化与托管属性关联。这将为该托管属性创建 RefinerConfiguration。

可使用 ManagedProperty.GetRefinerConfiguration 方法和 ManagedProperty.SetRefinerConfiguration 方法修改 RefinerConfiguration。

全文本索引

可将多个托管属性组合到全文本索引。这将允许您同时在多个托管属性中进行查询。利用全文本索引,可以对查询(按相关性排序的结果)进行动态排名。

通常,全文本索引包含一组表示要查询的项的内容的托管属性。这包括项的正文、标题、URL 等。可为不同类别的查询或不同的应用程序定义多个全文本索引。

若要获得已排名查询,可将全文本索引与一个或多个排名配置文件关联。

默认索引架构配置包含一个名为"content"的全文本索引。这是不带任何属性筛选的查询的默认全文本索引。

备注

不要删除和重新创建名称相同但配置不同的全文本索引。重新创建的全文本索引起初将包含此索引被删除前在其中索引的所有项。不再属于全文本索引的项将显示在查询结果中,直到这些项被更新或删除。

表 3 介绍与全文本索引相关的接口。

表 3. 与全文本索引相关的接口

接口

说明

FullTextIndex

指定一个全文本索引。

FullTextIndexCollection

启用对现有全文本索引的访问。可使用 FullTextIndexCollection.Create 方法创建新的全文本索引。

ManagedProperty

托管属性是可在查询结果中搜索或检索的元数据。

可使用 ManagedProperty.GetFullTextIndexMappings 方法将一个或多个托管属性映射到全文本索引。

RankProfile

可使用排名配置文件指定如何对查询结果进行相关性排名。

可使用 RankProfile.GetFullTextIndexRanks 方法将一个或多个全文本索引关联到一个排名配置文件。

FullTextIndexMapping

可使用此接口将一个托管属性映射到全文本索引。

可使用 ManagedProperty.GetFullTextIndexMappings 方法管理映射。

FullTextIndexRankComponent

配置与排名配置文件的给定全文本索引关联的邻近度提升和上下文提升权重参数。

可使用 RankProfile.GetFullTextIndexRanks 方法管理映射。

有关上下文提升的详细信息,请参阅重要性级别和钻取

排名配置文件

可使用排名配置文件 指定如何对查询结果进行相关性排名。有关排名配置文件概念的详细信息,请参阅 Microsoft TechNet 上的关于排名配置文件 (FAST Search Server 2010 for SharePoint)

对于全文本查询排名估算,一个排名配置文件与一个或多个全文本索引关联。

通常,全文本索引和排名配置文件之间存在一对一关系。在某些应用程序中,您可能希望在多个全文本索引中组合文本内容。若要按相关性对查询进行排名,则不管查询中指定的全文本索引如何,您都必须将所有全文本索引映射到用于查询的排名配置文件。

下面的示例演示您需要具有两个全文本索引并将它们映射到同一排名配置文件的原因。在您的应用程序中,您有一组表示项的可见内容(例如,标题和正文)的托管属性。您将这些属性映射到一个名为"content"的全文本索引(默认全文本索引)。之后,您可在用户查询此全文本索引时控制各个属性的相对重要性。您还可以具有一组表示用户所添加的标记和批注的托管属性。若要使用户能够将自由文本查询应用于这些属性,可将这些属性映射到另一个名为"annotations"的全文本索引。如果您同时将这两个全文本索引映射到一个排名配置文件,则可确保对以下查询进行正确的相关性排名:

new movies annotations:cool

对于质量排名 估算,一个排名配置文件可与一个或多个托管属性关联。通过使用权重将每个托管属性与全文本索引关联,以描述此托管属性在总体质量排名评估中的相对权重。

备注

默认索引架构配置包含一个名为"default"的排名配置文件,该文件是不带任何排名配置文件规范的查询的默认排名配置文件。

排名配置文件调整涉及以下因素:质量、授权、查询授权、新鲜度、邻近度、上下文和托管属性。表 4 中介绍了这些因素。可在排名配置文件中指定单个组件的相对权重。

表 4. 排名因素

排名因素

说明

质量

指定质量分数,也称作静态排名分数。

静态排名可从多个托管属性派生。为静态排名预定义了以下几组托管属性:

  • Urldepthrank   用于提升较短的 URL。

  • Docrank   基于指向某个项的链接的数目和相对重要性的排名提升。

  • Siterank   基于指向网站项目的链接的数目和相对重要性的排名提升。

  • Hwboost   用于静态排名点的一般用途的 FAST Search Server 2010 for SharePoint 占位符。

除了这些预定义的静态排名属性之外,您可以使用 QualityComponent 接口向静态排名托管属性列表中添加任何自定义整数类型的托管属性。此接口还允许您为各个组件分配不同的相对权重。

授权

指定当查询字词在链接文本(定位文本)中检索命中时给定的排名。此分数有两个部分:

  • 链接文本的部分匹配。例如,如果执行查询 Microsoft 且链接文本为 Microsoft Word,则会获得此项的部分匹配排名分数。

  • 链接文本的完全匹配。如果查询文本和链接文本之间存在一个完全匹配项,则会加上额外的分数。

查询授权

指定当新查询检索与之前执行的查询关联的项中的命中时给定的排名。在搜索 UI 中,将存储和处理用户的所有查询以及用户单击的与这些查询关联的项。

此因素允许用户通过其单击的查询结果中的项来影响常见查询的相关性排名。

每天的凌晨 01:00 将执行一次处理。将保存最近 30 天的单击以进行处理。

此排名提升有两个部分:

  • 部分匹配。例如,如果导致单击此项的初始查询为 Microsoft Word,且查询为 Microsoft,则会获得此项的部分匹配排名分数。

  • 完全匹配。如果用户查询和存储的查询授权查询之间存在一个完全匹配项,则会加上额外的分数。

新鲜度

指定分配给项的新鲜度提升,它基于与查询时间比较的项的上一次修改时间。上一次修改时间的源是名为 Write 的托管属性。

可使用 RankProfile.FreshnessResolution 属性指定分辨率。较小的分辨率意味着较小的时间差异将影响排名。

邻近度

指定根据项中的查询字词之间的距离和这些字词在项中的位置分配给项的邻近度提升。

邻近度提升基于全文本索引中的字词之间的距离。如果两个字词出现在全文本索引中的同一托管属性中,则将获得较大的提升。

可使用 RankProfile.PositionStopWordThreshold 属性来配置将邻近度排名应用于常用查询字词的方式。有关详细信息,请参阅 RankProfile 接口

上下文

指定依赖于搜索词在项中的命中位置的提升。将上下文提升分配为整体权重和基于全文本索引中定义的不同级别的权重。

将不同的托管属性(例如,标题和正文)映射到不同的级别。这样便能在搜索词命中项的标题而非正文文本时提供更高的排名分数。

有关详细信息,请参阅重要性级别和钻取

托管属性提升

指定一个排名组件,该组件允许管理员基于托管属性的字词匹配来提升已编制索引的项。任何具有匹配值的可搜索托管属性都可用作其他排名点的输入。

例如,您可能需要提升特定类型(例如,Microsoft Word 文档)的已编制索引的项。可使用 ManagedPropertyBoostComponent 接口指定提升。在该示例中,条件是托管属性 fileextension 必须具有值 doc 或 docx。

备注

质量提升和托管属性提升都提供了独立于实际查询的排名提升。质量提升为包含关联的数字类型的托管属性中的任何非零值的结果集中的所有项提供了无条件提升。提升值等于索引中每个匹配项的属性的数值。托管属性提升为所有项(其中,指示的托管属性与一个或多个特定字词匹配)提供条件提升。该匹配在查询评估期间执行。可在 ManagedPropertyBoostComponent.BoostValue 属性中指定匹配条件和提升值。

表 5 介绍与排名配置文件相关的接口。

表 5. 与排名配置文件相关的接口

接口

说明

RankProfile

指定一个排名配置文件。

RankProfileCollection

启用对现有排名配置文件的访问。可使用 RankProfileCollection.Create 方法创建新的排名配置文件。

FullTextIndex

利用全文本索引,可同时在多个托管属性中进行查询。

可使用 RankProfile.GetFullTextIndexRanks 方法将一个或多个全文本索引映射到排名配置文件。

FullTextIndexMapping

将一个托管属性映射到一个全文本索引。

ImportanceLevel 属性定义了此托管属性在全文本索引中的相对重要性。当全文本索引与排名配置文件关联时,将在上下文提升评估中使用此属性。有关详细信息,请参阅重要性级别和钻取

ManagedProperty

托管属性是可在查询结果中搜索或检索的元数据。

可使用 RankProfile.GetManagedPropertyBoosts 方法将托管属性提升配置与排名配置文件关联。

可使用 RankProfile.GetQualityComponents 方法将用于质量排名(静态排名)的一个或多个托管属性关联到排名配置文件。

QualityComponent

关联用于质量排名的一个或多个托管属性。

可使用 RankProfile.GetQualityComponents 方法管理关联。

ManagedPropertyBoostComponent

将托管属性提升配置与排名配置文件关联。

可使用 RankProfile.GetManagedPropertyBoosts 方法管理关联。

FullTextIndexRankComponent

将一个或多个全文本索引关联到排名配置文件。

可使用 RankProfile.GetFullTextIndexRanks 方法管理关联。有关详细信息,请参阅重要性级别和钻取

重要性级别和钻取

您将托管属性的重要性级别指定为全文本索引映射的一部分。查询评估通过以下两种方式使用重要性级别:

  • 定义托管属性在全文本索引中的相对重要性。这会在将全文本索引与排名配置文件关联时影响上下文提升。

  • 定义托管属性在全文本索引中的钻取级别。钻取可确保当查询字词与索引中过多的项匹配时首先返回最相关的项。

备注

重要性级别是一个介于 1 和 7 之间的值。将它指定为整数,在由 FullTextIndexRankComponent 接口公开的方法中除外。对于这些方法,可将重要性级别指定为 FullTextIndexImportanceLevel 枚举。

上下文提升依赖于多个权重参数,如下所示:

  • 在将托管属性与全文本索引关联时,您将指定每个托管属性的重要性级别。这表示,全文本索引中每个托管属性的相对重要性。您使用 FullTextIndexMappingCollection 接口的 Create 方法来创建具有关联的重要性级别的 FullTextIndexMapping 接口。您使用 GetFullTextIndexMappings 方法从 ManagedProperty 接口检索集合。

  • 在将全文本索引与排名配置文件关联时,您将指定每个重要性级别的相对权重。您使用 FullTextIndexRankCollection 接口创建一个具有关联权重的 FullTextIndexRankComponent 对象。您使用 GetFullTextIndexRanks 方法从 RankProfile 中检索集合。您使用 GetImportanceLevelWeight 方法和 SetImportanceLevelWeight 方法指定不同的重要性级别的相关权重。

  • 在将全文本索引与排名配置文件关联时,您还使用 FullTextIndexRankComponent 接口指定相对上下文提升权重。这将指定与其他相关提升参数比较的上下文提升的相对重要性。您使用 ContextWeight 属性指定权重。已规范化权重,并且您通常使用一个介于 0 和 100 之间的值。

备注

默认排名配置文件(名为"default")具有一个针对默认全文本索引(名为"content")的全文本索引排名组件。当您创建一个新的排名配置文件时,该文件会将默认全文本索引用作其全文本索引排名组件。如果您创建一个新的全文本索引排名组件,则会将该组件作为第二个 FullTextIndexRankComponent 对象添加到排名配置文件。若要将默认全文本索引排名组件替换为新的排名组件,您必须在创建新的排名组件后删除该默认全文本索引排名组件。

在查询评估期间,如果查询字词与索引中过多的项匹配,则查询匹配可以使用钻取。钻取通过减少要在全文本索引中查询的属性数,来优化搜索查询的结果。钻取是按非索引字阈值和重要性级别配置的,这可确保在达到该阈值时先返回最相关的项。

钻取可确保在针对全文本索引的查询达到非索引字阈值时先返回最相关的项。利用钻取,可以通过减少要在目标全文本索引中查询的属性数(钻取级别)来在结果集中自动向下钻取。全文本索引中定义的每个托管属性都具有关联的重要性级别。较高的重要性级别指示,在钻取到该级别时,托管属性将成为匹配的一部分。

如果您为一组统一的项编制了小型索引,则可能需要从默认配置更改钻取级别设置。在小型索引中,钻取对性能产生的影响是有限的。若要确保您获得较低级别(如正文)的托管属性的正确排名值,您可在全文本索引中对所有托管属性使用钻取级别 1

有四个可用的钻取级别。将重要性级别映射到钻取级别,如表 6 中所示。

表 6. 重要性级别和钻取级别之间的关系

重要性级别

钻取级别

1 和 2

包含在钻取级别 1 中。

3 和 4

包含在钻取级别 1 和 2 中。

5 和 6

包含在钻取级别 1、2 和 3 中。

7

包含在所有钻取级别中。

如果您只需使用钻取级别 1,则仍可使用重要性级别 1 和 2 来获得不同的上下文提升。

备注

不要使用大于所需钻取级别值的钻取级别值。如果您在全文本索引中使用过多级别,这将导致产生不必要的大型索引文件结构。

有关非索引字阈值配置的详细信息,请参阅 RankProfile 接口。有关钻取的工作方式的详细信息,请参阅 Microsoft TechNet 上的调整动态排名 (FAST Search Server 2010 for SharePoint)

查询优化

利用查询优化,可以使用为一个查询结果计算的聚合统计数据来优化该查询结果。这通常用于与已编制索引的项(例如,项中出现的创建日期、作者和人名)关联的元数据。通过使用优化选项,可以优化您的查询以仅显示在特定时间段内创建的项或仅显示引用了给定人员的项。

FAST Search Server 2010 for SharePoint 支持两种类型的查询优化器:

  • 深入优化器  查询优化基于一个搜索查询的所有结果的托管属性统计信息的聚合。索引器将创建在查询匹配过程中使用的聚合数据。使用此类查询优化器的好处是,优化选项将反映与查询匹配的所有项。通常,将以使用此模式,但定义多个深入优化器可能会大大影响查询匹配组件中的内存使用率。

    如果您需要准备索引数据结构以进行深入优化,但不希望为查询评估启用此功能,请考虑将 RefinementType 属性设置为 LatentRefinement。在使用此选项时,不会将深入优化所需的数据结构加载到主内存中,因此不会影响查询评估的性能。稍后,可将该设置更改为 DeepRefinementEnabled 以启用此功能。在这种情况下,更改将立即生效(无需重新为项编制索引)。

  • 浅表优化器  查询优化基于对一个搜索查询的前 50 个结果的托管属性统计信息的聚合。结果处理过程中会创建优化结果数据。由于优化仅限于最靠前的匹配结果,因此,您可能无法找到查询结果中隐藏较深的结果。但是,此优化选项不影响索引过程,因此可在启用该选项后立即应用它。

    浅表优化器会大大影响查询处理节点的性能,并会降低查询性能。

可在索引架构中和查询时指定大量查询优化选项。有关查询时选项的详细信息,请参阅ff394639(v=office.14).md

提示提示

对于 Datetime 托管属性,在查询时(而不是使用架构属性)控制优化器格很方便。这使您能够更轻松地在日期边界指定优化格。有关详细信息,请参阅ff394639(v=office.14).md

表 7 介绍与查询优化相关的接口。

表 7. 与查询优化相关的接口

接口

说明

RefinerConfiguration

指定一个查询优化。

ManagedProperty

托管属性是可在查询结果中搜索或检索的元数据。

可通过将 ManagedProperty.RefinementEnabled 属性设置为 True 来将查询优化与托管属性关联。这将激活托管属性的关联的 RefinerConfiguration 对象。

可使用 ManagedProperty.GetRefinerConfiguration 方法和 ManagedProperty.SetRefinerConfiguration 方法修改 RefinerConfiguration。

备注

对于整数类型的托管属性,如果托管属性可以包含负值,则不应启用查询优化。如果优化格(值范围)包含负值,则无法向下钻取到此值范围。

更新架构模型

在修改架构模型中的类实例时,您必须使用接口公开的 Update 方法以将所做的更改应用于实际索引。

Update 方法会将这些更改写入管理服务器上的数据库中。更新机制是以异步方式工作的,可能需要经过一段时间索引才能反映出这些更改,如下所示:

  • 在将架构更改部署到索引服务器之前,会有 30 到 60 秒的延迟。这样便有可能在进行多次架构更改后才会进行一次索引更新。

    备注

    与已爬网属性相关的接口不会影响索引服务器。在更新这些接口时,指示的延迟不适用。

  • 有些架构更改在重新编制索引之前不会生效。此情况会以不同的时间间隔发生,具体取决于新项或更新的项的速率。

  • 有些架构更改在更新关联的项之前不会生效。如果您对已爬网属性映射进行重大更改,则您可以考虑强制重新对内容进行完全爬网。

表 8. 架构更新以及它们对搜索索引的影响

架构更新对索引的影响

架构更新的类型

无需进行重新爬网。配置更改将立即生效。

  • 添加、删除或修改 RankProfile、FullTextIndexRankComponent、ManagedPropertyBoostComponent 或 QualityComponent 对象的配置。

  • 删除 ManagedProperty、FullTextIndex、FullTextIndexMapping 或 RefinerConfiguration 对象

  • 添加一个 RefinerConfiguration 对象,该对象的 RefinementType=DeepRefinementDisabled

  • 删除 RefinerConfiguration 对象

  • 修改 RefinerConfiguration 对象,在将 RefinementType 从 DeepRefinementDisabled 更改为 DeepRefinementEnabled 时除外

  • 通过禁用下列功能之一来修改 ManagedProperty 对象:

    • Queryable=False

    • RefinementEnabled=False

    • SortableType=Disabled

    • SummaryType=Disabled

无需进行重新爬网。但是,在对项进行重新爬网之前,索引中将不会反映配置更改。

  • 添加 ManagedProperty、FullTextIndex 或 FullTextIndexMapping

  • 添加一个 RefinerConfiguration,其 RefinementType=DeepRefinementEnabled 或 RefinementType=ShallowRefinement

  • 对 ManagedProperty 对象进行的所有配置更改,此表的任何其他行中列出的配置更改除外

  • 修改 FullTextIndex 或 FullTextIndexMapping 对象的配置

  • 添加、删除或修改 Category、CrawledProperty 或 CrawledPropertyMapping 对象的配置

需要对所有项进行重新爬网并重新为其编制索引。

修改 ManagedProperty 属性 SubstringEnabled 的配置。有关详细信息,请参阅启用子字符串搜索

启用子字符串搜索

可启用子字符串搜索以增强对中文、日语和朝鲜语的搜索。有关详细信息,请参阅规划索引架构 (FAST Search Server 2010 for SharePoint)

如果您修改 ManagedProperty 属性 SubstringEnabled 的配置,则在索引中的配置发生更改之前,将自动为所有项重新建立索引。

在修改此属性之前,您必须在管理服务器上的配置文件 %FASTSEARCH%\components\admin-services\web.config 中将 AllowIndexPurgeOnSchemaUpdate 标记配置为 yes。

备注

在配置发生更改后,您必须重新对所有内容进行爬网。必须执行此操作才能实现正确的词汇切分。

索引架构对象模型接口简介

以下各节介绍了索引架构对象模型、其主要接口及其属性。

对象模型包含以下主要接口:

  • CrawledProperty   表示索引架构中的一个已爬网属性。

  • Category   表示已爬网属性的高级分组。

  • ManagedProperty   表示索引架构中的一个托管属性。

  • FullTextIndex   表示索引架构中的一个全文本索引。

  • FullTextIndexMapping  表示一个托管属性与一个全文本索引的映射。

  • RankProfile   定义如何对搜索结果进行相关性排名。

  • FullTextIndexRankComponent  表示与排名配置文件的给定全文本索引关联的邻近度提升和上下文提升权重参数的配置。

  • ManagedPropertyBoostComponent   根据与托管属性值的匹配启用已编制索引的项的排名提升。

  • QualityComponent  根据数字类型托管属性的值启用已编制索引的项的静态排名提升。

  • RefinerConfiguration  表示与托管属性关联的查询优化器的配置。

有关完整的参考文档,请参阅 Microsoft.SharePoint.Search.Extended.Administration.Schema

CrawledProperty 接口

CrawledProperty 表示索引架构中的一个已爬网属性,如表 9 中所述。

表 9. CrawledProperty 接口的关键属性

属性

说明

Name

指定已爬网属性的名称,它通常是来自源内容存储库的硬编码名称。

CategoryName

指定已爬网属性类别的名称。

IsMappedToContents

指定是否将已爬网属性的内容映射到默认全文本索引。有关详细信息,请参阅 FullTextIndex 接口

IsMultiValued

未使用此属性,并已将其忽略。所有已爬网属性都支持内容源中的多值数据。

备注

在将多值已爬网属性映射到托管属性时,您必须确保托管属性已将 MergeCrawledProperties 设置为 True。否则,只会将已爬网属性的第一个值映射到托管属性。

IsNameEnum

指定已爬网属性的名称是否为一个枚举(而非字符串)。

Propset

已爬网属性的 Propset 为 GUID。GUID 是一个 128 位整数,它标识已爬网属性所属的属性集。其外观可能与以下内容类似:

fafcebdf-cdea-4c29-b0b1-d47aba446d44

通常,来自同一索引连接器实例的已爬网属性都具有相同的 Propset 值。

VariantType

属性的变量类型(用一个整数表示)。这指示该属性的数据类型。

Category 接口

Category 表示基于 IFilter 和用于从内容中提取元数据的内容源的已爬网属性的高级分组,如表 10 中所述。

表 10. Category 接口的关键属性

属性

说明

Name

指定已爬网属性类别的名称。

DiscoverNewProperties

指定是否为类别自动发现最新的已爬网属性。

MapToContents

指定是否将此类别中的已爬网属性的内容映射到默认全文本索引。有关详细信息,请参阅 全文本索引

如果设置为 True,则不管每个已爬网属性的 MapToContents 设置如何,都会将所有已爬网属性映射到默认全文本索引。

如果设置为 False,则只会将已将 MapToContents 设置为 True 的已爬网属性映射到默认全文本索引。

可使用 CreateCrawledProperty 方法从 Category 接口创建已爬网属性。

ManagedProperty 接口

ManagedProperty 表示索引架构中的一个托管属性。可将托管属性与用于查询优化配置的 RefinerConfiguration 对象关联。一个托管属性将与用于已排名查询的一个或多个全文本索引关联。表 11 介绍了 ManagedProperty 接口的关键属性。

表 11. ManagedProperty 接口的关键属性

属性

说明

Name

指定托管属性的名称。

Type

指定托管属性的数据类型。支持以下数据类型:

  • Text  文本搜索的 UTF-8 文本数据类型。

  • Integer  64 位有符号整数。

  • Decimal  定点有符号 decimal 数据类型。小数精度的数字位数是可配置的。

  • Float   64 位浮点数据类型。

  • Datetime  datetime 数据类型。此数据类型在搜索索引中以数值形式表示,并且支持排序和查询优化,这与 Integer 数据类型一样。

  • Boolean  Boolean 数据类型,有效值为 True 和 False。

DecimalPlaces

decimal 数据类型的小数位位数。

默认值:3

DeleteDisallowed

指定是否可从索引架构中删除托管属性。

IsMapped

指定是否映射托管属性以支持备用访问映射 (AAM)。

默认值:False

MappingDisallowed

指示是否可将已爬网属性映射到托管属性。

MaxIndexSize

指定将包括在搜索索引中的项的托管属性中的最大数据量(以 KB 为单位)。

默认值:1024

MaxResultSize

指定文档摘要可包含的最大数据量(以 KB 为单位)。

默认值:64

MergeCrawledProperties

指定是否包含映射到托管属性的所有已爬网属性的内容。如果禁用此设置,则第一个非空已爬网属性的值将用作托管属性的内容。

还必须将此属性设置为 True 以包含多值已爬网属性中的所有值。如果将此属性设置为 False,则仅将多值已爬网属性中的第一个值映射到托管属性。

Queryable

指定是否将托管属性作为单个属性进行查询。

备注

即使将 Queryable 属性设置为 False,全文本索引中仍可包含托管属性。

RefinementEnabled

指示是否为此托管属性启用查询优化

可通过将此属性设置为 True 来创建具有默认值的 RefinerConfiguration 对象。

可使用 GetRefinerConfiguration 方法和 SetRefinerConfiguration 方法更改 RefinerConfiguration。

备注

若要使用查询优化,您必须将 Queryable 属性设置为 True。

SortableType

指定托管属性的全文本排序配置。

  • SortableDisabled  不支持全文本排序。

  • SortableEnabled  在搜索索引中启用并激活了全文本排序。

  • LatentSortable  在搜索索引中启用全文本排序,但不将其激活。这意味着,索引已准备好根据此托管属性进行排序。但是,不会将支持的索引结构加载到主内存中。稍后可将 SortableType 设置为 Enabled,而无需重新为项编制索引。有关详细信息,请参阅 Microsoft TechNet 上的 规划索引架构 (FAST Search Server 2010 for SharePoint)

StemmingEnabled

指定此托管属性是否支持词干分解。

SubstringEnabled

指定此托管属性是否支持子字符串搜索。

有关详细信息,请参阅 Microsoft TechNet 上的 规划索引架构 (FAST Search Server 2010 for SharePoint)

SummaryType

此托管属性的文档摘要类型。这将定义如何为查询结果中的匹配项返回托管属性的内容。

  • Disabled  此托管属性不支持文档摘要。

  • Static  该文档摘要是托管属性的文本表示形式。

  • Dynamic  该文档摘要是托管属性的命中突出显示摘要。

    对于此摘要类型,还可使用 SetResultFallBack 方法指定回调托管属性。如果无法为查询创建命中突出显示摘要,则查询结果中将返回与回调托管属性关联的文档摘要。

可使用 ManagedPropertyCollection 接口的 Create 方法创建托管属性。

可使用 CrawledPropertyMapping 接口将一组已爬网属性映射到一个托管属性。通过使用 SetCrawledPropertyMappings 方法将映射与托管属性关联。

可使用 FullTextIndexMappingCollection 接口将托管属性映射到一个或多个全文本索引。通过使用 GetFullTextIndexMappings 方法访问此接口。

FullTextIndex 接口

FullTextIndex 表示索引架构中的一个全文本索引

可使用 FullTextIndexCollection 接口访问现有全文本索引。可使用 FullTextIndexCollection.Create 方法创建新的全文本索引。

表 12 介绍了 FullTextIndex 接口的关键属性。

表 12. FullTextIndex 接口的关键属性

属性

说明

Name

指定全文本索引的名称。

IsDefault

指定此全文本索引是否是查询的默认索引。

StemmingEnabled

描述是否支持词干分解。

DeleteDisallowed

一个布尔值,指示是否可删除托管属性。如果设置该属性,则它将成为强制性托管属性。

备注

不要删除和重新创建名称相同但配置不同的全文本索引。重新创建的全文本索引起初将包含此索引被删除前在其中索引的所有项。不再属于全文本索引的项将显示在查询结果中,直到这些项被更新或删除。

FullTextIndexMapping 接口

FullTextIndexMapping 将一个托管属性与一个全文本索引关联。

此接口的属性是只读的。可使用 FullTextIndexMappingCollection 接口的 Create 方法将托管属性映射到一个或多个全文本索引。可使用 ManagedProperty 接口的 GetFullTextIndexMappings 方法访问此接口。

表 13 介绍了 FullTextIndexMapping 接口的关键属性。

表 13. FullTextIndexMapping 接口的关键属性

属性

说明

FullTextIndex

为此映射指定全文本索引的名称。

ImportanceLevel

获取此映射的重要性级别。重要性级别是一个介于 1 和 7 之间的整数值。

有关详细信息,请参阅重要性级别和钻取

ManagedProperty

为此映射指定托管属性的名称。

RankProfile 接口

RankProfile 表示给定排名配置文件的配置,并定义如何对查询结果进行相关性排名。

表 14 介绍了 RankProfile 接口的关键属性。

表 14. RankProfile 接口的关键属性

属性

说明

Name

指定排名配置文件的名称。

IsDefault

布尔值,指定这是否为默认排名配置文件。

可使用 makeDefault 方法将排名配置文件指定为默认值。

StopWordThreshold

钻取操作使用非索引字阈值 来确保当在针对全文本索引的查询中达到非索引字阈值时先返回最相关的项。利用钻取,可通过减少目标全文本索引中要查询的属性数量(钻取级别)来自动在结果集中向下钻取。

StopWordThreshold 值与大小为 10,000,000 项的引用索引相关。StopWordThreshold 为 10,000,000 意味着将对索引中的所有项执行排名。默认值为 2,000,000,这意味着当在索引中 20% 以上的项中找到同一个搜索字时执行钻取(StopWordThreshold 将除以 10,000,000)。

默认值:2,000,000

PositionStopWordThreshold

控制搜索词是否将参与指定查询的排名分数的邻近部分。

如果 D 为与给定搜索节点上的搜索词匹配的项的数目,O 为搜索词在 D 个项中出现的总次数,且 X 为 PositionStopWordThreshold 值,则在计算此搜索节点上的邻近度提升 时,始终将考虑其 (D + O) 小于 X 的任何搜索词。

如果搜索词所具有的值 (D + O) 大于 X,则不会为此搜索节点上的字词检索位置信息,因此在计算此搜索节点上的邻近度提升时不会考虑该搜索词。

默认值:20,000,000

QualityWeight

指定质量排名 组件的相关性系数。

已规范化权重,并且您通常使用一个介于 0 和 100 之间的值。

AuthorityWeight

授权排名 组件的相关性系数。

已规范化权重,并且您通常使用一个介于 0 和 100 之间的值。

QueryAuthorityWeight

查询授权排名 组件的相关性系数。

已规范化权重,并且您通常使用一个介于 0 和 100 之间的值。

FreshnessWeight

新鲜度排名 组件的相关性系数。

已规范化权重,并且您通常使用一个介于 0 和 100 之间的值。

FreshnessResolution

用于计算新鲜度提升的解决方法。将解决方法设置为 hour 可指示同一小时内带时间戳的项将获得相同的新鲜度排名提升。

有效值如下:

  • Second

  • Minute

  • Hour

  • Day

  • Year

RankModelName

一个高级配置选项。使用名为 default 的默认排名模型。

可使用 FullTextIndexRankCollection 接口(该接口表示 FullTextIndexRankComponent 对象的集合)将一个或多个全文本索引关联到一个排名配置文件。您通过使用 GetFullTextIndexRanks 方法来管理该映射。

可使用 ManagedPropertyBoostCollection 接口(该接口表示 ManagedPropertyBoostComponent 对象的集合)将一个或多个托管属性提升配置关联到一个排名配置文件。您通过使用 GetManagedPropertyBoosts 方法来管理该映射。

可使用 QualityComponentCollection 接口(该接口表示 QualityComponent 对象的集合)将用于质量排名(静态排名)的一个或多个托管属性关联到一个排名配置文件。您通过使用 GetQualityComponents 方法来管理该映射。

FullTextIndexRankComponent 接口

FullTextIndexRankComponent 表示与排名配置文件的给定全文本索引关联的邻近度提升、上下文提升和重要性级别权重参数的配置。有关排名概念的详细信息,请参阅排名配置文件

表 15 介绍了 FullTextIndexRankComponent 接口的关键属性。

表 15. FullTextIndexRankComponent 接口的关键属性

属性

说明

ProximityWeight

指定与关联排名配置文件的此全文本索引相关的邻近度提升组件的相关性系数。该值定义了与其他提升组件比较的此组件的相对权重。

已规范化权重,并且您通常使用一个介于 0 和 100 之间的值。

ContextWeight

与关联的排名配置文件的此全文本索引相关的上下文提升组件的相关性系数。该值定义了与其他提升组件比较的此组件的相对权重。

已规范化权重,并且您通常使用一个介于 0 和 100 之间的值。

FullTextIndexReference

指定相关性系数应用于的全文本索引。

可使用 GetImportanceLevelWeight 和 SetImportanceLevelWeight 方法管理不同的重要性级别的相关权重。这表示与此重要性级别关联的上下文提升组件的相关性系数。已规范化权重,并且您通常使用一个介于 0 和 100 之间的值。有关详细信息,请参阅重要性级别和钻取

ManagedPropertyBoostComponent 接口

ManagedPropertyBoostComponent 允许基于托管属性的字词匹配的已编制索引的项的排名提升。任何具有匹配值的可搜索托管属性都可用作其他排名点的输入。有关详细信息,请参阅排名配置文件

表 16 介绍了 ManagedPropertyBoostComponent 接口的关键属性。

表 16. ManagedPropertyBoostComponent 接口的关键属性

属性

说明

ManagedPropertyName

指定受提升值影响的托管属性的名称。

BoostValue

指定适用于指示的托管属性的一个或多个串联的提升值。提升值的格式如下所示:

<boost term>, <boost amount>

例如:

Microsoft, 200

此配置示例会向结果集中在 ManagedPropertyName 给定的托管属性中包含标记"Microsoft"的任何项的排名添加提升值 200。

可为同一托管属性提供多个提升值。例如:

doc, 2000, docx, 3000

此配置示例会提升在 ManagedPropertyName 给定的托管属性中包含"doc"或"docx"的项。对于包含"doc"的项,提升值为 2000;对于包含"docx"的项,提升值为 3000。

QualityComponent 接口

QualityComponent 允许基于托管属性的数值的已编制索引项的质量(静态)排名提升。

表 17 介绍了 QualityComponent 接口的关键属性。

表 17. QualityComponent 接口的关键属性

属性

说明

ManagedPropertyReference

指定表示质量提升的托管属性的名称。

Weight

指定与此托管属性相关的质量提升值的相关性系数。该值定义了与其他质量提升组件比较的此组件的相对权重。

已规范化权重,并且您通常使用一个介于 0 和 100 之间的值。

RefinerConfiguration 接口

RefinerConfiguration 表示与托管属性关联的查询优化器的配置。有关详细信息,请参阅查询优化

备注

对于整数类型的托管属性,如果托管属性可以包含负值,则不应启用查询优化。如果优化格(值范围)包含负值,则无法向下钻取到此值范围。

表 18 介绍了 RefinerConfiguration 接口的关键属性。

表 18. RefinerConfiguration 接口的关键属性

属性

说明

RefinementType

指定为此优化器启用的查询优化的类型。

  • DeepRefinementEnabled  启用深度优化。

    该查询优化基于对搜索查询的所有结果的托管属性统计信息的聚合。

  • DeepRefinementDisabled  启用浅表优化。

    该查询优化基于对搜索查询的排名最靠前的命中项的托管属性统计信息的聚合。

  • LatentRefinement  深度优化数据包含在索引文件结构中但未启用。这意味着,索引准备根据此托管属性进行深度优化,但支持索引结构未加载到主内存中。稍后可将 RefinementType 更改为 DeepRefinementEnabled,而无需重新为项编制索引。

默认值:DeepRefinementEnabled

Algorithm

指定数字优化器离散化算法。

  • Equalfrequency  各个优化格的值范围可具有不同的宽度。将按照某种方式计算宽度的值,使每个优化格中包含的观测值的数量大致相同。

  • Equalwidth  每个优化格的值范围都相等。宽度是静态的,不会动态计算宽度的值。

  • Rangedivision  每个优化格的值范围将视为相等。将动态计算宽度的值,该值不必相等。

默认值:equalfrequency

Anchoring

指定字符串优化修饰符 的匹配模式。它描述深化查询如何与所引用的托管属性的实际内容以及完整的匹配标准相关。

如果引用的属性是多值属性,则对该属性中的单个字符串应用条件。

  • Auto  如果为托管属性启用边界匹配,则与 Complete 相同;否则与 None 相同。

  • None  不锚定优化修饰符。这意味着深化查询将匹配包含优化修饰符字词的项,但匹配的托管属性可在这些字词的前面或后面包含其他字词。

  • Complete  优化修饰符将锚定到索引字段的开头和结尾。这表示优化修饰符和匹配项的托管属性之间完全匹配。

  • Prefix  优化修饰符将锚定到托管属性的开头。这表示匹配的托管属性以优化修饰符字词开头。

  • Suffix  优化修饰符将锚定到托管属性的结尾。这表示匹配的托管属性以优化修饰符字词结束。

默认值:Auto

CutoffMaxBuckets

指定要在索引列中计算的优化格 的数量的限制。

在每个列中将返回最佳值(频率最高)。

这是在返回带有多个优化格的字符串优化器时增强搜索性能的优选方法,因为此方法会对查询匹配节点与查询处理节点之间的网络通信强制设置上限。

默认值:1000

DefaultValue

指定用于不包含与此优化器关联的托管属性的值的项的默认值。

默认值:无

Divisor

用于在向用户显示优化值之前按比例缩小该值。例如,如果实际值以字节为单位,而转换单位为 KB,则使用 Divisor=1024。

默认值:1

Intervals

指定要生成的优化格 的最大数量。

默认值:4

Resolution

返回的优化格的分辨率。它仅适用于数字优化器。例如,若要以 100 为边界进行对齐,则使用 resolution="100"。

备注

如果将此属性用于 Datetime 优化器,则该值表示 100 纳秒的增量。

默认值:1

请参阅

引用

Microsoft.SharePoint.Search.Extended.Administration.Schema

概念

将 FAST Search Server for SharePoint 配置为使用第三方 IFilter

创建自定义属性提取程序

其他资源

规划索引架构 (FAST Search Server 2010 for SharePoint)

管理索引架构 (FAST Search Server 2010 for SharePoint)

调整相关性 (FAST Search Server 2010 for SharePoint)

索引架构 cmdlet (FAST Search Server 2010 for SharePoint)