Elsaticsearch倒排索引

搜索引擎应该具有什么要求?

  • 查询快 

高效的压缩算法   快速的编码和解码速度

  • 结果准确

BM25     TF-IDF

  • 检索结果丰富

召回率


面向海量数据,如何达到搜索引擎级别的查询效率?

        索引  

  • 帮助快速检索
  • 以数据结构为载体
  • 以文件形式落地

倒排索引的数据结构

倒排索引

概念

一句话就是 关键词到文档id的映射

倒排索引的基本数据结构

term_dictionary:词项字典  不重复

Posting_List: 倒排表 存词项的文档id     int类型存储,为什么单个分片的倒排表有容量上限呢?就是因为int存储

term_index:  词项索引 

当前的数据是一个十亿级别的数据,这时候我们词项字典有很多,这时候检索不久又麻烦了吗

这时候就延伸出了FST ,它实际上是trie的变种。这时候看这个图  10亿的数据 导致倒排表存的id特多,所以倒排表对这个做了优化,如下图

 词项字典存在tim文件中

词项索引存放在tip中

倒排表存在doc中

猜你喜欢

转载自blog.csdn.net/qq_52988841/article/details/132686297