Elasticsearch-28-doc values初步了解

doc value

搜索的时候,要依靠倒排索引去搜索,但是在排序的时候需要依靠正排索引,找到每个document的每个field,然后进行排序,所谓的正排索引,其实就是doc values

es在建立索引的时候,一方面会建立倒排索引,以供搜索使用;一方面还会建立正排索引,也就是doc values,以供排序,聚合,过滤等操作使用

doc values是被保存在磁盘上的,此时如果内存足够,os会自动将其缓存在内存中,性能还是很高的,如果内存不够,os会将其写入到磁盘上

举例

比如有两个document,数据如下
document1: { “name”: “jack”, “age”: 27 }
document2: { “name”: “tom”, “age”: 30 }

在es建立正排索引的时候就是这样子的

document name age
document1 jack 27
document2 ton 30

这样在排序的时候es直接拿到正排索引里面的某一列去排序就好了