フルテキスト検索に使用するストップワードとストップリストの構成と管理
フルテキスト インデックスが肥大化するのを防ぐために、SQL Serverには、検索に役立たない一般的に発生する文字列を破棄するメカニズムがあります。 破棄されるこのような文字列を ストップワードと呼びます。 インデックスの作成中、Full-Text Engine により、フルテキスト インデックスからストップワードが除外されます。 つまり、フルテキスト クエリでは、ストップワードが検索されません。
ストップワードとストップリストについて
ストップワードは、特定の言語で意味を持つ単語の場合や言語的な意味のない トークン の場合があります。 たとえば、英語では、"a"、"and"、"is"、"the" などの単語は、検索に役立たないことが知られているため、フルテキスト インデックスから除外されます。
含まれるストップワードは無視されますが、フルテキスト インデックスではその位置が考慮されます。 たとえば、"Instructions are applicable to these Adventure Works Cycles models" という句があるとします。 以下のテーブルは、句の中の語の位置を表しています。
Word | [位置] |
---|---|
Instructions | 1 |
are | 2 |
applicable | 3 |
を | 4 |
these | 5 |
Adventure | 6 |
Works | 7 |
Cycles | 8 |
モデル | 9 |
位置 2、4、および 5 にあるストップワード "are"、"to"、"these" は、フルテキスト インデックスから除外されます。 ただし、その位置情報は保持されるため、語句内の他の語の位置は変わりません。
ストップワードは、ストップリストと呼ばれるオブジェクトを使用してデータベースで管理されます。 ストップリスト は、フルテキスト インデックスに関連付けられている場合、そのインデックスのフルテキスト クエリに適用されるストップワードの一覧です。
ストップリストの作成
ストップリストは、次のいずれかの方法で作成できます。
システムに備わっているストップリストをデータベースで使用します。 SQL Serverは、サポートされている各言語で最もよく使用されるストップワードを含むシステム ストップリストに付属しています。これは、既定で特定のワード ブレーカーに関連付けられているすべての言語に対応しています。 システム ストップリストには、サポートされているすべての言語に対して一般的なストップワードが含まれています。 システム ストップリストをコピーし、ストップワードを追加したり削除したりすることにより、そのコピーをカスタマイズできます。
システム ストップリストは Resource データベースにインストールされます。
指定した任意の言語について独自のストップリストを作成した後、ストップワードを追加します。 必要に応じて、ストップリストからストップワードを削除することもできます。
現在のサーバー インスタンスで他のデータベースの既存のカスタム ストップリストを使用して、必要に応じて、ストップワードを追加および削除します。
ストップリストを作成するには
Management Studio でフルテキスト ストップリストを作成するには
オブジェクト エクスプローラーで、サーバーを展開します。
[データベース]を展開し、フルテキスト ストップリストを作成する対象のデータベースを展開します。
[ストレージ]を展開し、 [フルテキスト ストップリスト]を右クリックします。
[新しいフルテキスト ストップリスト]をクリックします。
ストップリスト名を指定します。
必要に応じて、他のユーザーをストップリストの所有者として指定します。
次に示すストップリスト作成オプションのいずれかを選択します。
[空のストップリストを作成する]
[システム ストップリストから作成する]
[既存のフルテキスト ストップリストから作成する]
詳細については、「 New Full-Text Stoplist (General Page)」を参照してください。
[OK] をクリックします。
ストップリストを削除するには
フルテキスト クエリでのストップリストの使用
ストップリストをクエリで使用するには、ストップリストをフルテキスト インデックスに関連付ける必要があります。 インデックスの作成時にストップリストをフルテキスト インデックスにアタッチしたり、後でインデックスを変更してストップリストを追加したりできます。
フルテキスト インデックスを作成してストップリストを関連付けるには
既存のフルテキスト インデックスに対してストップリストの関連付けまたは関連付け解除を行うには
ストップワードが原因でフルテキスト クエリのブール演算が失敗する場合に、エラー メッセージを非表示にするには
ストップリストとストップリスト メタデータの表示
ストップリストのすべてのストップワードを表示するには
現在のデータベース内のすべてのストップリストに関する情報を取得するには
ワード ブレーカー、類語辞典、およびストップリストの組み合わせによるトークン化の結果を表示するには
ストップリストのストップワードの変更
ストップリストからストップワードを追加または削除するには
Management Studio でストップリスト内のストップワードを変更するには
オブジェクト エクスプローラーで、サーバーを展開します。
[データベース]を展開し、データベースを展開します。
[ストレージ]を展開し、 [フルテキスト ストップリスト]をクリックします。
プロパティを変更するストップリストを右クリックし、 [プロパティ]をクリックします。
[フルテキスト ストップリストのプロパティ] ダイアログ ボックスで:
[アクション] ボックスの一覧で、 [ストップワードの追加]、 [ストップワードの削除]、 [すべてのストップワードの削除]、 [ストップリストのクリア]のいずれかのアクションを選択します。
選択したアクションに対して [ストップワード] ボックスが有効になっている場合は、単一のストップワードを入力します。 このストップワードは一意である必要があります。つまり、選択した言語で、このストップリストにまだ含まれていないものである必要があります。
選択したアクションに対して [フルテキスト言語] ボックスの一覧が有効になっている場合は、言語を選択します。
[OK] をクリックします。
SQL Server 2005 のノイズ ワードからのアップグレード
SQL Server 2005 (9.x) ノイズ ワードはストップワードに置き換えられました。 データベースが SQL Server 2005 (9.x) からアップグレードされると、ノイズ ワード ファイルは使用されなくなります。 ただし、ノイズ ワード ファイルは FTDATA\ FTNoiseThesaurusBak フォルダーに保存され、後で更新する際、または対応するストップリストを作成する際に使用できます。 ノイズ ワード ファイルをストップリストにアップグレードする方法の詳細については、「 フルテキスト検索のアップグレード」を参照してください。