倒排索引关键点普及

倒排索引

倒排索引是什么?为什么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存储节省了内存。下图所示:

相关推荐
嗝屁小孩纸7 天前
ES索引重建(零工具纯脚本执行)
大数据·elasticsearch·搜索引擎
Elastic 中国社区官方博客7 天前
使用 Jina Embeddings v5 和 Elasticsearch 构建“与你的网站数据聊天”的 agent
大数据·人工智能·elasticsearch·搜索引擎·容器·全文检索·jina
LaughingZhu8 天前
Product Hunt 每日热榜 | 2026-02-24
大数据·数据库·人工智能·经验分享·搜索引擎
m0_528749008 天前
git如何用
大数据·elasticsearch·搜索引擎
光算科技8 天前
谷歌seo怎么做:大白话拆解引流套路
搜索引擎
海兰8 天前
趣闻生成器搭建
大数据·elasticsearch·搜索引擎
marteker8 天前
孩之宝为《变形金刚:大电影》四十周年庆推出“道歉之旅”系列活动
搜索引擎
WKP94188 天前
ES快速入门
大数据·elasticsearch·搜索引擎
历程里程碑9 天前
普通数组---合并区间
java·大数据·数据结构·算法·leetcode·elasticsearch·搜索引擎
cm_chenmin9 天前
Cursor最佳实践之三:MCP
大数据·elasticsearch·搜索引擎