transform noise words サーバー構成オプション

ノイズ ワード (ストップワード) があるためにフルテキスト クエリのブール演算から返される行数が 0 件になる場合、transform noise words サーバー構成オプションを使用してエラー メッセージを非表示にすることができます。 フルテキスト クエリに使用されている CONTAINS 述語に、ノイズ ワードを含んだブール演算または NEAR 演算が存在する場合、このオプションを使用すると便利です。 次の表に、このオプションで使用可能な値を示します。

説明

0

ノイズ ワード (ストップワード) は変換されません。 フルテキスト クエリにノイズ ワードが含まれている場合、クエリから返される行数は 0 件となり、SQL Server から警告が生成されます。 これは既定の動作です。

注意

警告は実行時の警告です。 そのため、クエリ内のフルテキスト句が実行されていない場合、警告は発生しません。 ローカル クエリの場合、複数のフルテキスト クエリ句がある場合でも、発生する警告は 1 つだけです。 リモート クエリの場合、リンク サーバーがエラーを中継しない場合があるので、警告が発生しないことがあります。

1

ノイズ ワード (ストップワード) の変換が行われます。 これらは無視されて、残りのクエリが評価されます。

近接語句内にノイズ ワードが指定された場合、SQL Server によって削除されます。 たとえば、ノイズ ワードである "is" は、CONTAINS(<column_name>, 'NEAR (hello,is,goodbye)') から削除され、検索クエリは CONTAINS(<column_name>, 'NEAR(hello,goodbye)') に変換されます。 CONTAINS(<column_name>, 'NEAR(hello,is)') は、有効な検索用語が 1 つしか存在しないため、単純に CONTAINS(<column_name>, hello) に変換されます。

transform noise words 設定の影響

このセクションでは、ノイズ ワードである "the" を例に、transform noise words の設定によるクエリ動作の違いを見ていきます。 サンプルのフルテキスト クエリ文字列は、[1, "The black cat"] というデータを含んだテーブル行に対して実行するものとします。

注意

このようなシナリオでは必ず、ノイズ ワードの警告が発生する可能性があります。

  • transform noise words を 0 に設定した場合:

    クエリ文字列

    結果

    "cat" AND "the"

    結果は返されません ("the" AND "cat" の場合も動作は同じ)。

    "cat" NEAR "the"

    結果は返されません ("the" NEAR "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

関連項目

参照

CONTAINS (Transact-SQL)

概念

サーバー構成オプション