学习elasticsearch时候,都说倒排索引倒排索引,乍一听以为是一种倒叙排列的方式,还是另有玄机?
经过一番论证,发现并不是那么回事。
先看下定义:倒排索引源于实际应用中需要根据属性的值来查找记录
一般的索引表的每一项都包含一个属性值和记录改属性值的地址,由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index),正常的索引是根据地址查找属性。
例如:
一般是以文档ID作为索引,以文档内容作为记录。
而Inverted index 指的是将单词或记录作为索引,将文档ID作为记录,这样便可以方便地通过单词或记录查找到其所在的文档。
好处:
常规的索引是文档到关键词的映射:
文档——>关键词
但是这样检索关键词的时候很费力,要一个文档一个文档的遍历一遍。(这事不能忍~)
于是人们发明了倒排索引~
倒排索引是关键词到文档的映射
关键词——>文档
这样,只要有关键词,立马就能找到她在那个文档里出现过,剩下的事就是把她揪出来了
可能是因为将正常的索引倒过来了吧,所以大家叫他倒排索引,可我依然喜欢叫他反向索引~
文档——>关键词
但是这样检索关键词的时候很费力,要一个文档一个文档的遍历一遍。(这事不能忍~)
于是人们发明了倒排索引~
倒排索引是关键词到文档的映射
关键词——>文档
这样,只要有关键词,立马就能找到她在那个文档里出现过,剩下的事就是把她揪出来了
可能是因为将正常的索引倒过来了吧,所以大家叫他倒排索引,可我依然喜欢叫他反向索引~
这个总结的很好,记录备忘。