正确理解全文索引的结构有助于您理解 Microsoft Full-Text Engine for SQL Server (MSFTESQL) 服务的工作方式。下面节选了 Adventure Works 中的 Document 表的两列和三行,即 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 列包含映射到全文索引表中某一特定全文键值的四字节整数值。满足搜索条件的 DocId 值将从 MSFTESQL 服务传递到数据库引擎,在数据库引擎中,它们将被映射为所查询基表中的全文键值。
Occ 列包含一个整数值。对于每个 DocId 值,均有一个位置值列表,对应于该 DocId 值中特定关键字的相对字符偏移。位置值用于确定短语或邻近匹配项,例如具有相邻位置值的短语。它们还用于计算相关性分数,例如记分时可能会用到 DocId中某一关键字的位置。