倒排索引简介
倒排索引是全文搜索引擎的核心数据结构,其主要作用是从文档中提取关键词,并建立关键词到文档的映射关系。这种结构与传统的正排索引(即文档到关键词的映射)相反,因此称为倒排索引。在倒排索引中,每个关键词都关联着包含该关键词的文档列表,这使得搜索操作能够迅速定位包含特定关键词的文档,从而大幅提高查询效率。
倒排索引中有两个非常重要的概念:
- 文档(
Document):用来搜索的数据,其中的每一条数据就是一个文档。例如一个网页、一个商品信息 - 词条(
Term):对文档数据或用户搜索数据,利用某种算法分词,得到的具备含义的词语就是词条。例如:我是中国人,就可以分为:我、是、中国人、中国、国人这样的几个词条
创建倒排索引流程:
- 先把文档内容进行分词,形成词条与文档ID的对应关系,叫做词条库,词条具备唯一性,建立索引
- 如图:
- 对搜索内容进行分词,把分词后得到一个关键词列表,根据关键词去词条库中匹配,再找到对应的文档ID列表
- 然后根据文档ID列表,找到对应的文档信息
- 倒排索引的搜索流程如下(以搜索"华为手机"为例),如图: