フルテキスト検索に使用するストップワードとストップリストの構成と管理

フルテキスト インデックスが肥大化するのを防ぐため、SQL Server には、頻繁に出現する、検索に役立たない文字列を破棄するメカニズムがあります。 破棄されるこのような文字列をストップワードと呼びます。 インデックスの作成中、Full-Text Engine により、フルテキスト インデックスからストップワードが除外されます。 つまり、フルテキスト クエリでは、ストップワードが検索されません。

このトピックの内容

  • ストップワードとストップリストについて

  • ストップリストの作成

  • フルテキスト クエリでのストップリストの使用

  • ストップリストとストップリスト メタデータの表示

  • ストップリストのストップワードの変更

  • SQL Server 2005 のノイズ ワードからのアップグレード

ストップワードとストップリストについて

ストップワードは、特定の言語で意味を持つ単語の場合や言語的な意味のないトークンの場合があります。 たとえば、英語では、"a"、"and"、"is"、"the" などの単語は、検索に役立たないことが知られているため、フルテキスト インデックスから除外されます。

含まれるストップワードは無視されますが、フルテキスト インデックスではその位置が考慮されます。 たとえば、"Instructions are applicable to these Adventure Works Cycles models" という句があるとします。 以下のテーブルは、句の中の語の位置を表しています。

単語

位置

Instructions

1

are

2

applicable

3

to

4

these

5

Adventure

6

Works

7

Cycles

8

models

9

位置 2、4、および 5 にあるストップワード "are"、"to"、"these" は、フルテキスト インデックスから除外されます。 ただし、その位置情報は保持されるため、語句内の他の語の位置は変わりません。

ストップワードは、ストップリストと呼ばれるオブジェクトを使用してデータベースで管理されます。 ストップリストは、フルテキスト インデックスに関連付けられている場合、そのインデックスのフルテキスト クエリに適用されるストップワードの一覧です。

[先頭に戻る]

ストップリストの作成

ストップリストは、次のいずれかの方法で作成できます。

  • システムに備わっているストップリストをデータベースで使用します。 SQL Server には、最も頻繁に使用するストップワードを含むシステム ストップリストが、サポート対象の言語ごとに用意されています。つまり、既定で、特定のワード ブレーカーに関連付けられている言語ごとにストップリストが用意されています。 システム ストップリストには、サポートされているすべての言語に対して一般的なストップワードが含まれています。 システム ストップリストをコピーし、ストップワードを追加したり削除したりすることにより、そのコピーをカスタマイズできます。

    システム ストップリストは Resource データベースにインストールされます。

  • 指定した任意の言語について独自のストップリストを作成した後、ストップワードを追加します。 必要に応じて、ストップリストからストップワードを削除することもできます。

  • 現在のサーバー インスタンスで他のデータベースの既存のカスタム ストップリストを使用して、必要に応じて、ストップワードを追加および削除します。

重要な注意事項重要

CREATE FULLTEXT STOPLIST、ALTER FULLTEXT STOPLIST、および DROP FULLTEXT STOPLIST は、互換性レベル 100 でのみサポートされています。 互換性レベルが 80 および 90 の場合、これらのステートメントはサポートされません。 ただし、システム ストップリストはどの互換性レベルでも、自動的に新しいフルテキスト インデックスに関連付けられます。

ストップリストを作成するには

Management Studio でフルテキスト ストップリストを作成するには

  1. オブジェクト エクスプローラーで、サーバーを展開します。

  2. [データベース] を展開し、フルテキスト ストップリストを作成する対象のデータベースを展開します。

  3. [ストレージ] を展開し、[フルテキスト ストップリスト] を右クリックします。

  4. [新しいフルテキスト ストップリスト] をクリックします。

  5. ストップリスト名を指定します。

  6. 必要に応じて、他のユーザーをストップリストの所有者として指定します。

  7. 次に示すストップリスト作成オプションのいずれかを選択します。

    • [空のストップリストを作成する]

    • [システム ストップリストから作成する]

    • [既存のフルテキスト ストップリストから作成する]

    詳細については、「[新しいフルテキスト ストップリスト] ([全般] ページ)」を参照してください。

  8. [OK] をクリックします。  

ストップリストを削除するには

[先頭に戻る]

フルテキスト クエリでのストップリストの使用

ストップリストをクエリで使用するには、ストップリストをフルテキスト インデックスに関連付ける必要があります。 インデックスの作成時にストップリストをフルテキスト インデックスにアタッチしたり、後でインデックスを変更してストップリストを追加したりできます。

フルテキスト インデックスを作成してストップリストを関連付けるには

既存のフルテキスト インデックスに対してストップリストの関連付けまたは関連付け解除を行うには

ストップワードが原因でフルテキスト クエリのブール演算が失敗する場合に、エラー メッセージを非表示にするには

[先頭に戻る]

ストップリストとストップリスト メタデータの表示

ストップリストのすべてのストップワードを表示するには

現在のデータベース内にあるすべてのストップリストに関する情報を取得するには

ワード ブレーカー、類語辞典、およびストップリストの組み合わせによるトークン化の結果を表示するには

[先頭に戻る]

ストップリストのストップワードの変更

ストップリストからストップワードを追加または削除するには

Management Studio でストップリスト内のストップワードを変更するには

  1. オブジェクト エクスプローラーで、サーバーを展開します。

  2. [データベース] を展開し、データベースを展開します。

  3. [ストレージ] を展開し、[フルテキスト ストップリスト] をクリックします。

  4. プロパティを変更するストップリストを右クリックし、[プロパティ] をクリックします。

  5. [[フルテキスト ストップリストのプロパティ]] ダイアログ ボックスで、次の操作を行います。

    1. [アクション] ボックスの一覧で、[ストップワードの追加][ストップワードの削除][すべてのストップワードの削除][ストップリストのクリア] のいずれかのアクションを選択します。

    2. 選択したアクションに対して [ストップワード] ボックスが有効になっている場合は、単一のストップワードを入力します。 このストップワードは一意である必要があります。つまり、選択した言語で、このストップリストにまだ含まれていないものである必要があります。

    3. 選択したアクションに対して [フルテキスト言語] ボックスの一覧が有効になっている場合は、言語を選択します。

  6. [OK] をクリックします。  

[先頭に戻る]

SQL Server 2005 のノイズ ワードからのアップグレード

SQL Server 2005 のノイズ ワードは、ストップワードになりました。 データベースが SQL Server 2005 からアップグレードされると、ノイズ ワード ファイルは使用されなくなります。 ただし、ノイズ ワード ファイルは FTDATA\ FTNoiseThesaurusBak フォルダーに保存され、後で更新する際、または対応するストップリストを作成する際に使用できます。 ノイズ ワード ファイルをストップリストにアップグレードする方法の詳細については、「SQL Server 2005 からのフルテキスト検索のアップグレード」を参照してください。

[先頭に戻る]