説明列にフルテキスト インデックスが作成された製品テーブルがあります。
問題は、ユーザーが 1 つの単語を頻繁に検索することです。これはたまたま、noiseXXX.txt ファイルに含まれています。
ノイズ ワード機能を有効にしたいのですが、この 1 列だけ無効にする方法はありますか?
2008 年に SET STOPLIST=OFF を使用してこれを実行できると思いますが、 SQL Server 2005で同様の機能を見つけることができないようです。
説明列にフルテキスト インデックスが作成された製品テーブルがあります。
問題は、ユーザーが 1 つの単語を頻繁に検索することです。これはたまたま、noiseXXX.txt ファイルに含まれています。
ノイズ ワード機能を有効にしたいのですが、この 1 列だけ無効にする方法はありますか?
2008 年に SET STOPLIST=OFF を使用してこれを実行できると思いますが、 SQL Server 2005で同様の機能を見つけることができないようです。
SQL Server 2005 では、ノイズ ワード リストがサーバー全体に適用されます。サーバー全体のノイズ ワードを無効にするには、適切なノイズ ワード ファイルを削除してから、フル テキスト インデックスを再構築します。しかし、SQL Server 2005 で 1 つのテーブルのノイズ ワードを選択的に無効にできるとは思えません。たとえば、ここ、ここ、ここを参照してください。
SQL Server 2008 では、FTS はノイズ ワード ファイルの使用からストップ リストへと移行します。ストップ リストは、フル テキスト インデックスには含まれず、ノイズ ワード ファイルの機能を置き換えるストップワードのコレクションを含むコンテナーです。
SQL Server 2008 (互換性レベル 100 のみ) では、特定の言語に対して複数のストップリストを作成でき、個々のテーブルに対してストップリストを指定できます。つまり、1 つのテーブルが特定のストップリストを使用し、2 番目のテーブルが別のストップリストを使用し、3 番目のテーブルがストップリストをまったく使用しない可能性があります。ストップリストの設定はテーブル全体に適用されるため、1 つのテーブルにインデックスが作成された複数の列がある場合は、すべて同じストップリストを使用する必要があります。
ご質問にお答えしますが、SQL Server 2005 では、個々のテーブルのノイズ ワードを選択的に無効にし、他のテーブルではノイズ ワードをオンのままにすることはできないと思います。これが契約を破る可能性がある場合は、サーバーを SQL Server 2008 または 2012 にアップグレードする良い機会になる可能性があります。