ElasticSearch——倒排索引和正向索引
1、正向索引
正向索引 (forward index) 以文档的ID为关键字,表中记录文档中每个字的位置信息,查找时扫描表中每个文档中字的信息直到找出所有包含查询关键字的文档
这种组织方法在建立索引的时候结构比较简单,建立比较方便且易于维护:
- 若是有新的文档加入,直接为该文档建立一个新的索引块,挂接在原来索引文件的后面。
- 若是有文档删除,则直接找到该文档号文档对应的索引信息,将其直接删除
缺点:
- 检索效率太低,只能在一起简单的场景下使用
假设有文档一(id为doc_1)和文档二(id为doc_2),
文档一:my name is zhangsan
文档二:my car is BMW
文档一和文档二的正向索引为:
| 文档id | 关键词 |
|---|---|
| doc_1 | my ,name, is, zhangsan |
| doc_2 | my ,car ,is ,BMW |
假设使用正向索引,那么当你搜索 ‘name’ 的时候,搜索引擎必须检索文档中的每一个关键词,假设一个文档中包含成千上百个关键词,可想而知,会造成大量的资源浪费。于是倒排索引应运而生。
2、倒排索引
倒排索引 ,一般也被称为反向索引(inverted index)。带有倒排索引的文件我们称为倒排索引文件,简称倒排文件(inverted file)。
倒排索引以字或词为关键字进行索引,表中关键字所对应的记录表项记录了出现这个

本文介绍了ElasticSearch中的正向索引与倒排索引的概念,详细阐述了倒排索引的组成,包括单词词典和倒排列表,并讨论了倒排索引的更新策略。
最低0.47元/天 解锁文章
1718

被折叠的 条评论
为什么被折叠?



