三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

倒排索引初步认识

倒排索引初步认识

RAG分词器的相关知识:

倒排索引:

倒排索引就是建立“ 词 → 包含这个词的文档 ”的映射,从而让搜索系统能够快速找到相关文档

可以理解为字典的反向查找表

正常来讲是先去找文档,然后看文档里面有什么词,但这样操作在文档数量少的时候还行,一旦文档数量非常多的时候,例如1000万篇文档,这个时候一篇一篇文档去查找关键词,效率会非常低,所以也就用到了倒排索引

之所以叫倒排,就是因为它是通过去比对关键词,找出这个词所归属的文档,从而快速锁定关键词所在的文档,这种就属于稀疏检索。

例如成都 -> [doc1, doc2, doc4],旅游 -> [doc2],当用户同时问到成都和旅游,还可以做交集,得知doc2为既包含成都也包含旅游的文档就实现快速精准的检索

说到这里,联系一下稠密检索中的向量检索,这里的倒排索引和BM25这种都属于稀疏检索,根据关键词来检索出相关文档,只会搜索出包含一模一样的关键词在内的文档,有一个字不一样都会被过滤。

而向量检索则是根据语义来检索,例如用户问我今天想去蓉城玩,而如果词库中只有成都,没有蓉城,BM25没有找到包含蓉城的文档,就会失效。而向量检索会分析语义,判断出蓉城 == 成都,所以就会检索出成都相关的文档。

← 返回列表