transform noise words オプション
ノイズ ワード (ストップ ワード) があるためにフルテキスト クエリのブール演算がゼロ行を返すような場合は、transform noise words サーバー構成オプションを使用するとエラー メッセージを非表示にできます。 このオプションは、中のブール演算または NEAR 演算がノイズ ワードを含んでいる CONTAINS 述語を使用するフルテキスト クエリを行うときに便利です。 次の表に、このオプションで使用可能な値を示します。
値 |
説明 |
---|---|
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)') は単に CONTAINS(<column_name>, hello) に変換されます。これは、有効な検索用語が 1 つしかないためです。 |
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" 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