什么是倒排索引
约 411 字大约 1 分钟
2025-04-30
你要对一个很大的文件搜索其中是否有一个关键词,常规的做法是 遍历整个文档,那么如果关键词在文档最后,就会非常慢
倒排索引 先记录了每个关键词出现在了哪些文档里,需要哪个关键词,把含有的文档直接拎出来就可以,这样就快多了
参考不吃紫菜
一、正排索引
优点
如果是根据id查询,那么直接走索引,查询速度非常快。
缺点
但如果是基于 title 做模糊查询,只能是逐行扫描数据,流程如下:
1)用户搜索数据,条件是 title 符合 "
%手机%
"2)逐行获取数据,比如 id 为1的数据
3)判断数据中的 title 是否符合用户搜索条件
4)如果符合则放入结果集,不符合则丢弃。回到步骤1
逐行扫描,也就是全表扫描,随着数据量增加,其查询效率也会越来越低。当数据量达到数百万时,就是一场灾难。
二、倒排索引
使用倒排索引搜索步骤:
用户输入条件"
华为手机
"进行搜索。对用户输入内容分词,得到词条:
华为
、手机
。拿着词条在倒排索引中查找,可以得到包含词条的文档 id:1、2、3。
拿着文档 id 到正向索引中查找具体文档。