フルテキスト インデックスの構造
フルテキスト インデックスの構造をよく理解しておくことは、Microsoft Full-Text Engine for SQL Server (MSFTESQL) サービスの動作を理解するのに役立ちます。次の、Adventure Works の Document テーブルの抜粋は、テーブルの 2 つの列と 3 つの行、DocumentID 列、および Title 列を示しています。
この例では、Title 列に対してフルテキスト インデックスが作成されているものとします。
DocumentID | Title |
---|---|
1 |
Crank Arm and Tire Maintenance |
2 |
Front Reflector Bracket and Reflector Assembly 3 |
3 |
Front Reflector Bracket Installation |
次のテーブル (一部分) は、Document テーブルの Title 列に対して作成されたフルテキスト インデックスの内容を示しています。
メモ : |
---|
フルテキスト インデックスには、この表に示されているより多くの情報が含まれています。次の表は、例を挙げる目的で紹介しています。 |
Keyword | ColId | DocId | Occ |
---|---|---|---|
Crank |
1 |
1 |
1 |
Arm |
1 |
1 |
2 |
Tire |
1 |
1 |
4 |
Maintenance |
1 |
1 |
5 |
Front |
1 |
2 |
1 |
Front |
1 |
3 |
1 |
Reflector |
1 |
2 |
2 |
Reflector |
1 |
2 |
5 |
Reflector |
1 |
3 |
2 |
Bracket |
1 |
2 |
3 |
Bracket |
1 |
3 |
3 |
Assembly |
1 |
2 |
6 |
3 |
1 |
2 |
7 |
Installation |
1 |
3 |
4 |
Keyword 列には、インデックス作成時に抽出された単一のトークン表現が含まれています。ワード ブレーカが、トークンの構成要素を決定します。
ColId 列には、フルテキスト インデックスが作成されている特定のテーブルおよび列に対応する値が含まれています。
DocId 列には、フルテキスト インデックスが作成されているテーブルで特定のフルテキスト キー値にマップされる 4 バイトの整数値が含まれています。検索条件に一致する DocId 値は、MSFTESQL サービスからデータベース エンジンに渡され、そこでクエリ対象のベース テーブルのフルテキスト キー値にマップされます。
Occ 列には整数値が含まれます。各 DocId 値ごとに、その DocId 内の特定キーワードの相対的な単語オフセットに対応するオカレンス値の一覧があります。オカレンス値は、句または近接検索の判定に役立ちます。たとえば、句には数値の近いオカレンス値が含まれます。また、関連性スコアを計算するのにも役立ちます。たとえば、DocId のキーワードのオカレンス数をスコアリングに使用できます。
参照
概念
Microsoft Full-Text Engine for SQL Server
フルテキスト検索の基礎
フルテキスト インデックス
その他の技術情報
CREATE FULLTEXT INDEX (Transact-SQL)