倒排索引关键点普及

倒排索引

倒排索引是什么?为什么es、hbase、doris、starrocks都有倒排索引?

倒排索引(英文:Inverted Index),是一种索引方法,常被用于全文检索系统中的一种单词文档映射结构。现代搜索引擎绝大多数的索引都是基于倒排索引来进行构建的,这源于在实际应用当中,用户在使用搜索引擎查找信息时往往只输入信息中的某个属性关键字,如一些用户不记得歌名,会输入歌词来查找歌名;输入某个节目内容片段来查找该节目等等。面对海量的信息数据,为满足用户需求,顺应信息时代快速获取信息的趋势,聪明的开发者们在进行搜索引擎开发时对这些信息数据进行逆向运算,研发了"关键词------文档"形式的一种映射结构,实现了通过了物品属性信息对物品进行映射,可以帮助用户快速定位到目标信息,极大地降低了信息获取难度。倒排索引又叫反向索引,它是一种逆向思维运算,是现代信息检索领域里面最有效的一种索引结构。

倒排索引组成



倒排表:posting list : int有序数组,存储匹配某个item的所有的id,使用roaring bitmaps,frame of reference压缩算法,具体算法可以自行百度,

倒排索引 词项字典term dictionary :

词项索引 term index : 极大的节约内存,使用fst压缩算法,最大可达20倍,,性能不如hashmap,但也很不错



fst构建原理

使用fst算法将词项字段和词项索引存储在内存中,由于压缩倍率大,十亿个词项字典进行fst解析之后,存储在内存中也就1G大小,fst是如何将词项字典和词项索引进行映射的呢? 由于所有英文,或者中文进行解析之后,最终都是有26个英文字母对应,由于fst算法能复用后缀和前缀,因此极大节约了结构树的长度,使得最终存储在内存中,相比普通tree存储节省了内存。下图所示:



相关推荐
Elastic 中国社区官方博客7 小时前
使用 Lucene 搜索你的 Bean —— Elasticsearch
大数据·开发语言·人工智能·elasticsearch·搜索引擎·全文检索·lucene
闲蛋小超人笑嘻嘻7 小时前
Git Worktree 详解
大数据·elasticsearch·搜索引擎
Y3815326627 小时前
行业动态周报:用新闻 API 追踪一个赛道的声音变化
python·搜索引擎
Zhu75811 小时前
快速测试-ZLMediaKit
大数据·elasticsearch·搜索引擎
Elastic 中国社区官方博客11 小时前
使用 NVIDIA cuVS 在 Elasticsearch 中实现 GPU 加速的向量索引:在 10 分钟内处理 1.38 亿个向量
大数据·数据库·elasticsearch·搜索引擎·全文检索·安全威胁分析
liuhl09101 天前
【无标题】
大数据·elasticsearch·搜索引擎
Y3815326621 天前
竞品上新监控:用搜索 API 盯住对手发布了什么新功能
python·搜索引擎
MayBaymax1 天前
ES 基础总结
大数据·elasticsearch·搜索引擎
Elastic 中国社区官方博客1 天前
两个依赖和一个配置块:通过 Prometheus 远程写入将 Spring Boot 指标发送到 Elasticsearch
大数据·数据库·spring boot·elasticsearch·搜索引擎·全文检索·prometheus
LaughingZhu1 天前
Product Hunt 每日热榜 | 2026-09-27
人工智能·深度学习·神经网络·搜索引擎·百度