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