在我们搜索的时候,要依靠倒排索引,但是当我们排序的时候,需要依靠正排索引。通过倒排索引锁定文档document之后,看到每个document的每个field,然后进行排序,所谓的正排索引就是doc values。
对于ES而言,在建立索引的时候,一方面会建立倒排索引,以供搜索使用;一方面会建立正排索引,也就是doc values,以供排序,聚合,过滤等使用。
doc values是被保存在磁盘上的,此时如果内存足够,OS操作系统会自动将其缓存在内存中,性能还是会很高的,如果内存不够用,OS操作系统会将其写入磁盘。
下面举个例子描述正排索引和倒排索引
假设某个index有两个doc
doc1 : hello world you and me
doc2 : hi world, how are you
建立倒排索引
word doc1 doc2
hello *
world * *
you * *
and *
me *
hi *
how *
are *
假设某个index有两个doc
doc1: {"name": "jack", "age": 27}
doc2: {"name": "tom", "age": 30}
建立正排索引
document name age
doc1 jack 27
doc2 tom 30
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。