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