关键字管理 (FAST Search Server 2010 for SharePoint)

您可以使用 Microsoft FAST Search Server 2010 for SharePoint 中的关键字管理功能来为不同用户组提供相关程度更高的查询结果。这包括页面或网站的同义词、最佳匹配和升级。

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

关键字术语由管理员定义来改进搜索结果。当查询包括关键字术语或其同义词之一时,可以在查询结果中返回最佳匹配 或可视化最佳匹配 形式的任何推荐结果。

最佳匹配、可视化最佳匹配、文档升级和文档降级可与定义的用户上下文相关联。这些用户上下文使管理员能够推荐与特定用户组相关的结果。

本文内容:

适用范围: SharePoint Server 2010

在查询中使用用户上下文

当您创建自定义搜索应用程序时,必须在查询中提供用户上下文信息。您可以使用 Microsoft.Search.Query 架构中的 UserContext 元素添加一个或多个用户上下文规范。将实际的上下文规范添加到 UserContextData 元素中。

userContextString 是按以下格式设置其格式的字符串:

K:D:v1Dv2Dv3...|K:D:v1Dv2Dv3

表 1. 用户上下文语法组成部分

语法组成部分

说明

K

关键字键(例如"责任")。

如果键包含冒号(":")、反斜杠("\")或竖线("|")等任何特殊字符,则必须对它们进行转义。

示例:"\:"

D

用于分隔多个值的分隔符。分隔符的第一个实例括在":"字符中,指定在下一个字符串中使用的分隔符值。如果上下文字符串只有一个值,则 D 保留为空("::"),这意味着键只有一个值。

分隔符值可以包括一个或多个字符(一个字符或字符串,例如";"、"$"或"STOP")。

分隔符不能包含任何特殊字符,例如":"、"\"或"|"。

v1..vx

键 K 的值。值不能包含分隔符。

如果键包含":"、"\"或"|"等任何特殊字符,则必须对它们进行转义。

示例:"\:"

|

用于分隔多个键/值对。

网站管理员已定义了仅在执行查询的用户具有 developer 责任时应用的可视化最佳匹配 Dev Center。在本例中,查询必须包括用户的上下文规范,并且具有此责任的用户的查询必须包括如下 userContextString。

responsibilities:;:developer

在查询结果中请求最佳匹配和可视化最佳匹配

使用 QueryEx 查询 Web Services 方法时,您可以通过使用 IncludeSpecialTermResults 元素请求最佳匹配和可视化最佳匹配。

在查询结果中,您在下列表中获得最佳匹配和可视化最佳匹配:

  • SpecialTermResults:此表包含的每一行对应为关键字定义的每个最佳匹配。

  • VisualBestBetsResults:此表包含的每一行对应为关键字定义的每个可视化最佳匹配。

这两个表包含相同的列,如表 2 中所示。

备注

SharePoint Server 搜索和 FAST Search Server 2010 for SharePoint 对于最佳匹配返回的列集不相同。

表 2. 对于最佳匹配和可视化最佳匹配返回的结果表列

说明

Name

最佳匹配或可视化最佳匹配的名称。

Description

可选说明。

Keyword

关联的关键字。关键字按以下格式提供:

KD[<keyword>]

其中 <keyword> 是与查询匹配的关键字。

Teaser

可以在查询结果中使用的前导部分文本。

TeaserContentType

前导部分的可选内容类型(例如 text/html)。

Uri

最佳匹配或可视化最佳匹配的 URI。

对于最佳匹配,这是可以显示在查询结果页上的 URI。

对于可视化最佳匹配,这是指向可以显示在查询结果页上的图形元素的 URI。

Position

最佳匹配或可视化最佳匹配在查询结果中的预期位置。仅当为关键字定义了多个最佳匹配或可视化最佳匹配时,才关系到此列。

备注

如果对最佳匹配或可视化最佳匹配使用前导部分或位置,请确保使用 Windows PowerShell 而不是在网站集用户界面中创建和管理关键字设置。这些设置在用户界面中不可用。

在查询 Web Services 中使用最佳匹配和可视化最佳匹配

以下步骤是对演练:从客户端应用程序查询 FAST Search Server 的扩展。按照该文章中的步骤操作,并按如下所述扩展代码。

代码扩展如下所示:

  • 在查询 XML 中请求最佳匹配或可视化最佳匹配

  • 在第二个"DataGridView"控件中输出最佳匹配或可视化最佳匹配数据

扩展 Visual Studio 客户端应用程序的代码

  1. 替换 queryXML2 字符串的定义,以在结果集中添加最佳匹配和可视化最佳匹配:

       // queryXML2 is the part of the XML after the query string.
       string queryXML2 = @"
             </QueryText>
          </Context>
          <ResultProvider>FASTSearch</ResultProvider>
          <Range>
             <Count>10</Count>
          </Range>
          <IncludeSpecialTermResults>true</IncludeSpecialTermResults>
       </Query>
    </QueryPacket>";
    
  2. 若要在查询结果中包括最佳匹配,请将以下代码行添加到 queryButton_Click 事件:

       // Set the second DataGridView data source to the SpecialTermResults table in the DataSet object:
       secondGrid.DataSource = queryResults.Tables["SpecialTermResults"];
    
  3. 若要在查询结果中包括可视化最佳匹配,请将以下代码行添加到 queryButton_Click 事件:

       // Set the second DataGridView data source to the VisualBestBetsResults table in the DataSet object:
       secondGrid.DataSource = queryResults.Tables["VisualBestBetsResults"];
    

请参阅

引用

Microsoft.Search.Query 架构中的 UserContext 元素

UserContextData 元素

概念

演练:从客户端应用程序查询 FAST Search Server