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 words
を 1
に設定します。
sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
sp_configure 'transform noise words', 1;
RECONFIGURE;
GO