ElasticSearch(7.2.2)-倒排索引

简介:带你分析倒排索引的原理

我们打开NBA中国官⽹,搜索james得到以下结果

ElasticSearch(7.2.2)-倒排索引

假设⽂档集合如下图所示

ElasticSearch(7.2.2)-倒排索引

  • 我们是怎么通过james查找到名字带有james的球员呢?
  • 如果按照这个图,我们是不是得把这5个⽂档遍历⼀遍,把⽂档带有james的球员查找出来?
  • 如果按照这种顺序扫描,那每次输⼊不同的关键字,岂不是要从头到尾遍历⼀遍?
假设⽂档集合如下图所示

ElasticSearch(7.2.2)-倒排索引

  • 我们把这个5个球员的名字进⾏分词,每个分词转成⼩写字⺟,并且以每个分词分组,统计它所在⽂档的位置。
  • 当有关键字请求过来的时候,将关键字转成⼩写,查找出关键字匹配到的⽂档位置,然后全部返回。
完善倒排索引

ElasticSearch(7.2.2)-倒排索引

参数解释
  • DocId:单词出现的⽂档id
  • TF:单词在某个⽂档中出现的次数
  • POS:单词在⽂档中出现的位置