使用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