3

説明列にフルテキスト インデックスが作成された製品テーブルがあります。

問題は、ユーザーが 1 つの単語を頻繁に検索することです。これはたまたま、noiseXXX.txt ファイルに含まれています。

ノイズ ワード機能を有効にしたいのですが、この 1 列だけ無効にする方法はありますか?

2008 年に SET STOPLIST=OFF を使用してこれを実行できると思いますが、 SQL Server 2005で同様の機能を見つけることができないようです。

4

1 に答える 1

2

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 にアップグレードする良い機会になる可能性があります。

于 2012-06-26T01:46:02.257 に答える