類義語辞典の構成

SQL Server ではフルテキスト クエリで類義語辞典を使用し、指定した用語のシノニムを検索できます。SQL Server の類義語辞典では、特定の言語の一連のシノニムを定義します。システム管理者は、拡張セットと置換セットという 2 つの形式のシノニムを定義できます。フルテキスト データに合わせた類義語辞典を作成すると、そのデータのフルテキスト クエリのスコープを効果的に拡張できます。類義語辞典の照合は、FORMSOF THESAURUS 句を指定する CONTAINS クエリと CONTAINSTABLE クエリの場合、および FREETEXT クエリと FREETEXTABLE クエリの場合にのみ行われます。

サーバー インスタンス上のフルテキスト検索クエリで特定の言語のシノニムを検索するには、その言語の類義語辞典のマッピング (シノニム) を定義しておく必要があります。各類義語辞典は、次の内容を定義するために手動で構成する必要があります。

  • 分音文字の設定

    類義語辞典では、チルダ (~)、アキュート アクセント記号 (´)、ウムラウト (¨) などの分音記号をすべての検索パターンで区別するかしないか (アクセントを区別する、またはアクセントを区別しない) が設定されます。たとえば、フルテキスト クエリで "café" というパターンが他のパターンに置き換えられるように指定するとします。類義語辞典でアクセントが区別されない場合、フルテキスト検索では、パターン "café" と "cafe" が置き換えられます。類義語辞典でアクセントが区別される場合、フルテキスト検索では "café" というパターンのみが置き換えられます。既定では、類義語辞典でアクセントは区別されません。

    注意

    分音記号の詳細については、MSN エンカルタ百科事典の「分音記号」を参照してください。

  • 拡張セット

    拡張セットには、フルテキスト クエリで相互に置き換えられる "writer"、"author"、"journalist" などのシノニムのグループが格納されます。拡張セット内のシノニムと一致するクエリは、拡張セット内の他のシノニムもすべて含むように拡張されます。

    詳細については、このトピックの後半の「拡張セットの XML 構造」を参照してください。

  • 置換セット

    置換セットには、代替セットによって置き換えられるテキストのパターンが格納されます。このトピックの後半で説明する「置換セットの XML 構造」の例を参照してください。

注意

類義語辞典ファイルに関する制限と推奨事項については、「類義語辞典ファイルを編集する方法 (フルテキスト検索)」を参照してください。

SQL Server には XML 類義語辞典ファイルのセットが用意されており、サポートされている各言語に対して 1 つのファイルが存在します。これらのファイルは基本的に空です。すべての SQL Server 類義語辞典およびコメント アウトされたサンプル類義語辞典に共通する最上位の XML 構造のみが格納されています。

このトピックでは、このタスクの実行に役立つ次の情報を示します。

  • 類義語辞典ファイルの初期内容

  • 類義語辞典ファイルの場所

  • クエリで類義語辞典ファイルを使用する方法

  • 類義語辞典ファイルの構造について

  • 類義語辞典ファイルの操作

類義語辞典ファイルの初期内容

SQL Server 2008 でリリースされている類義語辞典ファイルには、すべて次の XML コードが含まれています。

<XML ID="Microsoft Search Thesaurus">

<!--  Commented out

    <thesaurus xmlns="x-schema:tsSchema.xml">
<diacritics_sensitive>0</diacritics_sensitive>
        <expansion>
            <sub>Internet Explorer</sub>
            <sub>IE</sub>
            <sub>IE5</sub>
        </expansion>
        <replacement>
            <pat>NT5</pat>
            <pat>W2K</pat>
            <sub>Windows 2000</sub>
        </replacement>
        <expansion>
            <sub>run</sub>
            <sub>jog</sub>
        </expansion>
    </thesaurus>
-->
</XML>

[先頭に戻る]

類義語辞典ファイルの場所

類義語辞典ファイルの既定の場所は次のとおりです。

<SQL_Server_data_files_path>\MSSQL10_50.MSSQLSERVER\MSSQL\FTDATA\

この既定の場所には、次のファイルが格納されています。

  • 言語固有の類義語辞典ファイル

    セットアップ中に、空の類義語辞典ファイルが前述の場所にインストールされます。サポートされている言語ごとに個別のファイルが用意されています。システム管理者は、これらのファイルをカスタマイズできます。

    類義語辞典ファイルの既定のファイル名には、次の形式が使用されます。

    ‘ts’ + <three-letter language-abbreviation> + '.xml'

    特定の言語の類義語辞典ファイルの名前は、レジストリで HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<instance-name>\MSSearch\<language-abbrev> と指定されています。

  • グローバル類義語辞典ファイル

    tsGlobal.xml は空のグローバル類義語辞典ファイルです。

類義語辞典ファイルの場所および名前を変更するには、そのレジストリ キーを変更します。各言語の類義語辞典ファイルの場所は、レジストリで次のように指定されています。

HKLM/SOFTWARE/Microsoft/Microsoft SQL Server/<instance name>/MSSearch/Language/<language-abbreviation>/TsaurusFile

グローバル類義語辞典ファイルは、LCID 0 のニュートラル言語に対応します。この値は、管理者のみが変更できます。

[先頭に戻る]

クエリで類義語辞典ファイルを使用する方法

類義語辞典クエリでは、言語固有の類義語辞典とグローバル類義語辞典の両方が使用されます。まず、言語固有のファイルが参照されて処理のために読み込まれ (まだ読み込まれていない場合)、類義語辞典ファイル内の拡張セットおよび置換セットのルールで指定された言語固有のシノニムを含むようにクエリが拡張されます。この手順がグローバル類義語辞典に対して繰り返されます。ただし、言語固有の類義語辞典ファイルで既に一致するものが見つかった用語は、グローバル類義語辞典では照合されません。

[先頭に戻る]

類義語辞典ファイルの構造について

各類義語辞典ファイルでは、ID が Microsoft Search Thesaurus の XML コンテナー、およびサンプル類義語辞典を含むコメント <!----> が定義されます。類義語辞典は <thesaurus> 要素で定義されます。この要素には、次のように分音文字の設定、拡張セット、および置換セットを定義する子要素のサンプルが含まれます。

  • 分音文字の設定の XML 構造

    類義語辞典の分音文字の設定は、単一の <diacritics_sensitive> 要素で指定されます。この要素には、次のようにアクセントの区別を制御する整数値が含まれます。

    分音文字の設定

    XML

    アクセントを区別しない

    0

    <diacritics_sensitive>0</diacritics_sensitive>

    アクセントを区別する

    1

    <diacritics_sensitive>1</diacritics_sensitive>

    注意

    この設定はファイルで 1 回のみ適用でき、ファイル内のすべての検索パターンに適用されます。この設定は個別のパターンには指定できません。

  • 拡張セットの XML 構造

    各拡張セットは <expansion> 要素で囲みます。この要素内に、<sub> 要素で囲んだ 1 つ以上の代替文字列を指定します。拡張セットでは、互いにシノニムとなる代替文字列のグループを指定できます。

    たとえば、拡張のセクションを編集して、代替文字列 "writer"、"author"、および "journalist" をシノニムとして扱うことができます。1 つの代替文字列と一致するフルテキスト検索クエリは、拡張セット内の他の代替文字列もすべて含むように拡張されます。したがって、上記の例では、"author" という語に対して FORMS OF THESAURUS クエリまたは FREETEXT クエリを実行すると、フルテキスト検索では "writer" と "journalist" という語も含む検索結果が返されます。

    上記の例の拡張セットのセクションを次に示します。

     <expansion>
             <sub>writer</sub>
             <sub>author</sub>
             <sub>journalist</sub>
     </expansion>
    
  • 置換セットの XML 構造

    各置換セットは <replacement> 要素で囲みます。この要素内に、<pat> 要素で囲んだ 1 つ以上のパターン、および <sub> 要素で囲んだ 0 個以上の代替文字列 (シノニムごとに 1 つ) を指定できます。ここで指定するパターンが代替セットで置き換えられます。パターンと代替文字列には、語または語の並びを含めることができます。パターンに対して代替文字列が指定されていない場合は、ユーザー クエリからパターンが削除されます。

    たとえば、"W2K" というパターンを検索するクエリを、"Windows 2000" または "XP" という代替文字列に置き換えるとします。この場合、"W2K" に対してフルテキスト クエリを実行すると、フルテキスト検索からは "Windows 2000" または "XP" だけを含む検索結果が返されます。"W2K" を含む結果は返されません。これは、"W2K" が "Windows 2000" と "XP" というパターンに "置換" されるためです。

    上記の例の置換セットのセクションを次に示します。

     <replacement>
             <pat>W2K</pat>
             <sub>Windows 2000</sub>
             <sub>XP</sub>
     </replacement>
    

    類似するパターンを含む 2 つの置換セットが一致する場合、2 つのうちで長い置換セットが優先されます。たとえば、"Internet Explorer online community" に対して FORMS OF THESAURUS クエリを実行し、次の置換セットを使用すると、"Internet Explorer" 置換セットの方が "Internet" 置換セットよりも優先されます。したがって、このクエリは "IE online community" または "IE 5 online community" として処理されます。

    <replacement>
             <pat>Internet</pat>
             <sub>intranet</sub>
    </replacement>
    

    および

    <replacement>
             <pat>Internet Explorer</pat>
             <sub>IE</sub>
             <sub>IE 5</sub>
    </replacement>
    

[先頭に戻る]

類義語辞典ファイルの操作

類義語辞典ファイルを編集するには

更新された類義語辞典ファイルを読み込むには

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