Elasticsearch正向索引与倒排索引

Elasticsearch正向索引与倒排索引

一、正向索引

首先,要明白什么是正向索引,所谓正向索引,就是在查找某项数据时,按照id一条一条查找,如果当前数据中包含所需数据,则将当前数据取出,不包含则抛弃,直至全部遍历结束。

例如:当我们按照正向索引去寻找包含小米三星苹果的数据时,会从头遍历一遍,筛选出包含的数据。

id 词条
1 小米
2 苹果
3 小米
4 小米
5 三星

优点:在按照id查询时效率高

缺点:在模糊查询时,只能全部遍历,效率低

二、倒排索引

倒排索引中,文档指的是每一条数据,例如:我喜欢你。词条指的是将文档拆分成有意义的词语,例如之前的文档可拆成4个词条:我、喜欢、你。

倒排索引,就是将文档拆分成许多的词条,根据词条去寻找数据库中哪些地方存在该词条,记录数据的id等信息,之后将其存到一张表中,最终形成的效果类如:

词条 出现位置
小米 1,2,5,7,9
苹果 3,4,8,10
三星 6,11,12

接下来当我们按照倒排索引模糊查询时,去表中挑选对应词条的出现位置,再去正向查找这些id的数据即可

总结

正向索引,从头遍历到尾,取出符合的数据,如若按id查找,效率高

倒排索引,将文档拆分为词条,查找其出现的位置,将信息存到表中,查找时去表中查找词条,获得位置,按照位置id去正向查找。

posted @   超级大菠萝面包  阅读(71)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示