使用transform noise words服务器配置选项以抑制错误消息,如果噪音词,即停用词,导致全文查询中的布尔操作返回零行。 此选项对于使用 CONTAINS 谓词的全文查询非常有用,其中布尔运算或 NEAR 运算包括噪声词。 下表描述了可能的值。
| 价值 | DESCRIPTION |
|---|---|
| 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" NEAR "cat" 的行为相同)。“ the”而不是“black”无结果 “ black”而不是“the”无结果 将噪声词转换设置为 1:
查询字符串 结果 “ cat”和“the”对于 ID 为 1 的行命中 “ cat” 靠近 “the”按 ID 为 1 的行 “ the”而不是“black”无结果 “ black”而不是“the”按 ID 为 1 的行
示例:
以下示例将 transform noise words 设置为 1.
sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
sp_configure 'transform noise words', 1;
RECONFIGURE;
GO