本文基于elasticsearch权威指南和reference 7.1文档的阅读理解整理而成,水平有限,难免错漏。
elasticsearch一个很重要的功能,就是对数据的分析,而分析就少不了对数据集的各种聚合aggregation,count、sum、avg等等,这个时候,es的主要数据结构--inverted index就起不了多大作用了,我们来看看抽象的inverted结构:
这是从每个term找到存储term的document的结构,而我们考虑count(term)这样的聚合,很明显的是从已知的document找term的过程,是inverted的反过程,uninverted。这个时候,inverted index不能很好的完成这样的需求,就需要构造一个uninverted的结构--doc values。将上面这个图顺序反过来,我们得到下面的抽象结构:
而这,就是doc values的结构了。将inverted index与doc values结合起来,就完成了es的从search到aggregation