分布式系列教程(31) -ElasticSearch倒排索引

正向索引

正排表 : 以文档的ID为关键字,表中记录文档中每个字的位置信息,查找时扫描表中每个文档中字的信息直到找出所有包含查询关键字的文档

这种组织方法在建立索引的时候结构比较简单,建立比较方便且易于维护,因为索引是基于文档建立的。

  • 若是有新的文档加入,直接为该文档建立一个新的索引块,挂接在原来索引文件的后面。
  • 若是有文档删除,则直接找到该文档号文档对应的索引信息,将其直接删除。

但是在查询的时候需对所有的文档进行扫描以确保没有遗漏,这样就使得检索时间大大延长,检索效率低下。

尽管正排表的工作原理非常的简单,但是由于其检索效率太低,除非在特定情况下,否则实用性价值不大。

倒排索引

倒排表 : 以字或词为关键字进行索引,表中关键字所对应的记录表项记录了出现这个字或词的所有文档,一个表项就是一个字表段,它记录该文档的ID和字符在该文档中出现的位置情况

由于每个字或词对应的文档数量在动态变化,所以倒排表的建立和维护都较为复杂,但是在查询的时候由于可以一次得到查询关键字所对应的所有文档,所以效率高于正排表

在全文检索中,检索的快速响应是一个最为关键的性能,而索引建立由于在后台进行,尽管效率相对低一些,但不会影响整个搜索引擎的效率。

举例

正排索引是从文档到关键字的映射(已知文档求关键字),倒排索引是从关键字到文档的映射(已知关键字求文档)。

例如文档内容:

序号内容
1小俊是一家科技公司创始人,开的汽车是奥迪a8l,加速爽。
2小薇是一家科技公司的前台,开的汽车是保时捷911。
3小红买了小薇的保时捷911,加速爽。
4小明是一家科技公司开发主管,开的汽车是奥迪a6l,加速爽。
5小军是一家科技公司开发,开的汽车是比亚迪速锐,加速有点慢。

倒排索引会对以上文档内容进行关键词分词,可以使用关键词直接定位到文档内容:

单词ID单词倒排列表 docId
11,2,3,4,5
2一家1,2,4,5
3科技公司1,2,4,5
4开发4,5
5汽车1,2,3,5
6奥迪1,4
7加速爽1,3,4
8保时捷2,3
9保时捷9112
10比亚迪5
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值