适用于:SQL Server
transform noise words
如果干扰词(也称为非索引字)导致对全文查询的布尔作返回零行,请使用服务器配置选项来禁止显示错误消息。 此选项对于使用其布尔操作或 NEAR 操作包括干扰词的 CONTAINS 谓词的全文查询非常有用。 下表中列出了该选项的可能值。
值 | 说明 |
---|---|
0(默认值) | 干扰词(或非索引字)不会转换。 在某个全文查询包含干扰词时,该查询将返回零行,并且 SQL Server 将引发警告。 注意: 该警告是运行时警告。 因此,如果未执行查询中的全文子句,则不会引发警告。 对于本地查询,只引发一个警告,即使存在多个全文查询子句时也是如此。 对于远程查询,链接服务器可能无法中继错误;因此,可能无法引发警告。 |
1 | 转换干扰词(或非索引字)。 它们将被忽略,接下来评估查询的其余部分。 如果用邻近词指定了干扰词,则 SQL Server 将删除它们。 例如,干扰词 is 将从 CONTAINS(<column_name>, 'NEAR (hello,is,goodbye)') 删除,并且将搜索查询转换为 CONTAINS(<column_name>, 'NEAR(hello,goodbye)') 。
注意:CONTAINS(<column_name>, 'NEAR(hello,is)') 将转换为只是 CONTAINS(<column_name>, hello) 因为只有一个有效的搜索词。 |
转换噪声词设置的效果
本部分说明在备用设置transform noise words
下包含干扰词the
的查询的行为。 假定示例全文查询字符串针对包含以下数据的表行运行: [1, "The black cat"]
注意
所有此类应用场景都可以生成干扰词警告。
转换干扰词设置为 0:
查询字符串 结果 cat
和the
无结果( the
和cat
的行为相同)。cat
近the
无结果( the
NEARcat
的行为是相同的)。the
并且不black
无结果 black
并且不the
无结果 转换干扰词设置为 1:
查询字符串 结果 cat
和the
命中 ID 为 1 的行 cat
近the
命中 ID 为 1 的行 the
和 非black
无结果 black
以及非the
命中 ID 为 1 的行
例子
以下示例将 transform noise words
设置为 1
.
EXECUTE sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
EXECUTE sp_configure 'transform noise words', 1;
RECONFIGURE;
GO