转换干扰词服务器配置选项

使用transform noise words服务器配置选项以抑制错误消息,如果噪音词,即停用词,导致全文查询中的布尔操作返回零行。 此选项对于使用 CONTAINS 谓词的全文查询非常有用,其中布尔运算或 NEAR 运算包括噪声词。 下表描述了可能的值。

价值 DESCRIPTION
0 干扰词(或停用词)不会被转换。 当全文查询包含干扰词时,查询将返回零行,SQL Server 将引发警告。 这是默认行为。

请注意,警告是运行时警告。 因此,如果未执行查询中的全文子句,则不会引发警告。 对于本地查询,即使有多个全文查询子句,也只会引发一条警告。 对于远程查询,链接服务器可能无法中继错误;因此,可能不会引发警告。
1 干扰词(或停用词)已被转换。 将忽略它们,并评估查询的其余部分。

如果在邻近词中指定干扰词,SQL Server 将删除它们。 例如,将干扰词isCONTAINS(<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  

另请参阅

服务器配置选项 (SQL Server)
CONTAINS (Transact-SQL)