transform noise words 服务器配置选项
使用 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 设置的影响
本节将基于 transform noise words 的替代设置,说明包含干扰词“the”的查询的行为。 假定示例全文查询字符串将对包含以下数据的表行运行:[1, "The black cat"]。
注意 |
---|
所有此类应用场景都可以生成干扰词警告。 |
transform noise words 设置为 0:
查询字符串
结果
"cat" AND "the"
无结果(此行为对于 "the" AND "cat" 是相同的。)
"cat" NEAR "the"
无结果(此行为对于 "the" NEAR "cat" 是相同的。)
"the" AND NOT "black"
无结果
"black" AND NOT "the"
无结果
transform noise words 设置为 1:
查询字符串
结果
"cat" AND "the"
命中 ID 为 1 的行
"cat" NEAR "the"
命中 ID 为 1 的行
"the" AND NOT "black"
无结果
"black" AND NOT "the"
命中 ID 为 1 的行
示例
以下示例将 transform noise words 设置为 1。
sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
sp_configure 'transform noise words', 1;
RECONFIGURE;
GO