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" AND "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