検索用のワード ブレーカーとステミング機能の構成と管理

ワード ブレーカーとステミング機能は、すべてのフルテキスト インデックス データに対して言語分析を実行します。 言語分析には、単語の境界 (単語の区切り) の検索と動詞の活用 (ステミング) が含まれます。 ワード ブレーカーとステミング機能は言語に固有のものであり、言語分析の規則は言語によって異なります。 特定の言語において、ワード ブレーカーによって、言語の語彙の規則に基づいて単語の境界を検出し、個々の単語を識別します。 各単語 (トークンともいいます) は、サイズを縮小するために圧縮された表現でフルテキスト インデックスに挿入されます。 ステミング機能はその言語の規則に基づいて特定の語の変化形を生成します (たとえば、"running"、"ran"、"runner" は、"run" という語の変化形です)。

言語固有のワード ブレーカーを使用すると、その言語に対する検索結果の精度が高くなります。 言語ファミリにはワード ブレーカーが存在していても、特定のサブ言語は対象とされない場合は、主言語が使用されます。 たとえば、カナダ系フランス語テキストの処理には、フランス語のワード ブレーカーが使用されます。 特定の言語用のワード ブレーカーが使用できない場合は、ニュートラル ワード ブレーカーが使用されます。 ニュートラル ワード ブレーカーを使用すると、単語は空白や句読点などのニュートラル文字で分割されます。

このトピックの内容

  • ワード ブレーカーの登録

  • [既定のフルテキスト言語] オプションの設定

  • インデックス付きの列の言語の選択

  • ワード ブレーカーの情報の取得

  • 単語区切りのタイムアウト エラーのトラブルシューティング

  • 新しいワード ブレーカーの影響について

ワード ブレーカーの登録

言語のワード ブレーカーを使用する場合は、そのワード ブレーカーを登録する必要があります。 ワード ブレーカーを登録すると、関連する言語リソース (ステミング機能、ノイズ ワード (ストップワード)、および類義語辞典ファイル) もフルテキスト インデックス操作やフルテキスト クエリ操作で使用できるようになります。 現在 SQL Server にワード ブレーカーが登録されている言語の一覧を表示するには、次の Transact-SQL ステートメントを使用します。

SELECT * FROM sys.fulltext_languages

ワード ブレーカーを追加、削除、または変更すると、フルテキスト インデックスおよびフルテキスト クエリでサポートされている Microsoft Windows のロケール識別子 (LCID) の一覧を更新する必要があります。 詳細については、「登録済みのフィルターおよびワード ブレーカーの表示または変更」を参照してください。

[既定のフルテキスト言語] オプションの設定

SQL Server のローカライズされたバージョンでは、適切な言語が存在する場合、SQL Server セットアップによって default full-text language オプションはサーバーの言語に設定されます。 SQL Server のローカライズされていないバージョンでは、default full-text language オプションは英語になります。

フルテキスト インデックスを作成または変更する際には、フルテキスト インデックス列ごとに言語を指定できます。 列に言語が指定されていない場合、既定では構成オプション default full-text language の値になります。

注意

1 つのフルテキスト クエリ関数句に指定されるすべての列は、クエリで LANGUAGE オプションが指定されていない限り、同じ言語を使用する必要があります。 クエリ対象のフルテキスト インデックスが付けられた列に使用する言語によって、フルテキスト クエリの述語 (CONTAINS および FREETEXT) および関数 (CONTAINSTABLE および FREETEXTTABLE) の引数に対して実行される言語分析が決まります。

インデックス付きの列の言語の選択

フルテキスト インデックスを作成する際には、各インデックス列に対して言語を指定することをお勧めします。 列に言語が指定されていない場合、システムの既定の言語が使用されます。 列のインデックス作成に使用されるワード ブレーカーとステミング機能は、列の言語によって決まります。 また、指定した言語の類義語辞典ファイルが、列のフルテキスト クエリで使用されます。

フルテキスト インデックスの作成時に列の言語を選択する際には、注意点が 2 つあります。 これらの注意点は、テキストをトークン化する方法と、Full-Text Engine によるインデックス作成の方法にかかわるものです。 詳細については、「フルテキスト インデックス作成時の言語の選択」を参照してください。

列のワード ブレーカーの言語を表示するには

ワード ブレーカーの情報の取得

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

登録されているワード ブレーカーに関する情報を返すには

単語区切りのタイムアウト エラーのトラブルシューティング

単語区切りのタイムアウト エラーは、さまざまな状況で発生する可能性があります。 エラーが発生する状況とその対処方法については、「MSSQLSERVER_30053」を参照してください。

新しいワード ブレーカーの影響について

各バージョンの SQL Server では、通常、新しいワード ブレーカーが含まれています。これらのワード ブレーカーでは、言語の規則が改良されているため、以前のワード ブレーカーよりも精度が向上しています。 新しいワード ブレーカーは、前のバージョンの SQL Server からインポートされたフルテキスト インデックスのワード ブレーカーとは少し動作が異なる場合もあります。 データベースが現在のバージョンの SQL Server にアップグレードされたときにフルテキスト カタログをインポートした場合は、この動作の違いが重要になります。 フルテキスト カタログのフルテキスト インデックスで使用される 1 つまたは複数の言語が、新しいワード ブレーカーに関連付けられる可能性があります。 詳細については、「SQL Server 2005 からのフルテキスト検索のアップグレード」を参照してください。

すべてのワード ブレーカーの一覧については、「sys.fulltext_languages (Transact-SQL)」を参照してください。

関連項目

参照

ALTER FULLTEXT INDEX (Transact-SQL)

CREATE FULLTEXT INDEX (Transact-SQL)

sp_fulltext_service (Transact-SQL)

sys.fulltext_languages (Transact-SQL)

概念

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

SQL Server 2005 からのフルテキスト検索のアップグレード