全文索引结构

正确理解全文索引的结构有助于您理解 Microsoft Full-Text Engine for SQL Server (MSFTESQL) 服务的工作方式。下面节选了 Adventure Works 中的 Document 表的两列和三行,即 DocumentID 列和 Title 列。

在下例中,我们假设已对 Title 列创建了全文索引。

 

DocumentIDTitle

1

Crank Arm and Tire Maintenance

2

Front Reflector Bracket and Reflector Assembly 3

3

Front Reflector Bracket Installation

下面的表片断显示了对 Document 表的 Title 列创建的全文索引的内容。

ms142505.note(zh-cn,SQL.90).gif注意:
全文索引中包含的信息比此表中显示的信息要多。下面的表仅用来举例。

 

KeywordColIdDocIdOcc

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中某一关键字的位置。

原文地址:https://www.cnblogs.com/javaleon/p/4143421.html