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

サーバー構成オプションを transform noise words 使用して、ノイズ ワード ( ストップワード) によってフルテキスト クエリに対するブール演算が 0 行を返した場合にエラー メッセージを抑制します。 フルテキスト クエリに使用されている 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 words1 に設定します。

sp_configure 'show advanced options', 1;  
RECONFIGURE;  
GO  
sp_configure 'transform noise words', 1;  
RECONFIGURE;  
GO  

参照

サーバー構成オプション (SQL Server)
CONTAINS (Transact-SQL)