フルテキスト検索のアーキテクチャ

更新 : 2006 年 4 月 14 日

Microsoft SQL Server 2005 のフルテキスト検索には、Microsoft Full-Text Engine for SQL Server (MSFTESQL) が装備されています。MSFTESQL サービスにはインデックス作成サポートとクエリ サポートの 2 つのロールがあります。

SQL Server のフルテキスト検索のアーキテクチャを次に示します。

フルテキスト検索アーキテクチャ図

アーキテクチャは、次のプロセスで構成されています。

  • SQL Server プロセス (Sqlservr.exe)
  • Microsoft Full-Text Engine for SQL Server プロセス (Msftesql.exe)
  • Microsoft Full-Text Engine Filter Daemon プロセス (Msftefd.exe)

これらの各プロセスに含まれているコンポーネントを次のセクションで説明します。

SQL Server プロセス

SQL Server プロセスは、次のコンポーネントで構成されます。

  • ユーザー テーブル
    これらのテーブルには、フルテキスト インデックスを作成する対象のデータが格納されます。
  • キー マップ
    このコンポーネントには、フルテキスト キー列のデータ値と内部ドキュメント識別子とのマップが格納されます。
  • SQL Server クエリ プロセッサ
  • Microsoft フルテキスト Gatherer
    このコンポーネントは、フルテキスト インデックス作成のスケジュール設定や実行、およびフルテキスト カタログの監視を行います。

Microsoft Full-Text Engine for SQL Server (MSFTESQL) プロセス

MSFTESQL サービスでは、次の操作を行います。

  • フルテキスト カタログの作成と管理
  • SQL Server データベースのテーブルでフルテキスト検索

MSFTESQL プロセスは、次の表に示すコンポーネントをホストしています。

コンポーネント 説明

Filter Daemon Manager

Microsoft Full-Text Engine Filter Daemon (MSFTEFD) プロセスの状態を監視します。

インデクサ

インデックスが作成されたトークンの保存に使用される逆インデックス構造を構築します。詳細については、「フルテキスト インデックスの構造」を参照してください。

類義語辞典ファイル

検索語句のシノニムが含まれています。詳細については、「類義語辞典」を参照してください。

ノイズ語ファイル

頻繁に出現する、検索に不要な語の一覧が含まれています。詳細については、「ノイズ語」を参照してください。

ワード ブレーカとステミング機能

すべてのフルテキスト インデックス データに関する言語分析を実行します。ワード ブレーカは、フルテキスト インデックスが作成された行のテキスト ストリームで、単語の境界位置を決定するコンポーネントです。ステミング機能では、特定の語の語根を抽出します。たとえば、"running"、"ran"、および "runner" は、"run" という語の変化形です。MSFTESQL サービスでは、クエリが FREETEXT クエリか、変化形の拡張が要求される場合、クエリ時にステミング機能を呼び出します。

詳細については、「ワード ブレーカとステミング機能」を参照してください。

MSFTESQL サービスの詳細については、「Microsoft Full-Text Engine for SQL Server」を参照してください。

Microsoft Full-Text Engine Filter Daemon (MSFTEFD) プロセス

MSFTEFD は、フルテキスト インデックスの作成プロセス中に、MSFTESQL サービスによって起動されます。MSFTEFD では、次に示されている、テーブルにアクセスしてデータにフィルタを適用するコンポーネント、ワード ブレーカ コンポーネント、ステミング機能コンポーネントなどがホストされます。

  • プロトコル ハンドラ
    SQL Server 2005 では、このコンポーネントは、特定のデータベースのテーブルからのデータにアクセスします。
  • フィルタ
    ドキュメントからテキスト情報を抽出し、テキスト以外のすべての情報とフォーマット情報を破棄します。詳細については、「フルテキスト検索フィルタ」を参照してください。
  • ワード ブレーカとステミング機能

内部テーブル

フルテキスト検索には、次の内部テーブルが使用されます。

  • fulltext_index_map には、フルテキスト キー列とドキュメントを一意に識別する内部ドキュメント識別子との間のマッピングが格納されます。
  • fulltext_catalog_freelist には、使用されていないドキュメント識別子が格納されます。
ms142541.note(ja-jp,SQL.90).gifメモ :
これらのテーブルは内部でのみ使用されます。これらのテーブルを変更したり、クエリを実行したりすることはできません。旧バージョンとの互換性や今後の SQL Server のリリースでこれらのテーブルを使用できるかどうかは保証されていません。

参照

概念

Microsoft Full-Text Engine for SQL Server
フルテキスト インデックス作成とクエリのプロセス

その他の技術情報

内部テーブル

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 4 月 14 日

新しい内容 :
  • 内部テーブルの情報を追加。