关键字管理 (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 客户端应用程序的代码
替换 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>";
若要在查询结果中包括最佳匹配,请将以下代码行添加到 queryButton_Click 事件:
// Set the second DataGridView data source to the SpecialTermResults table in the DataSet object: secondGrid.DataSource = queryResults.Tables["SpecialTermResults"];
若要在查询结果中包括可视化最佳匹配,请将以下代码行添加到 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 元素