Elasticsreach--Doc Values 和FieldData应用

Doc Values :

在Elasticsearch中,检索时使用的是倒排索引,即一个词找到对应的文档列表映射;倒排索引能够快速查找包含某项的文档,但是对于聚合排序的操作并不高效。

在聚合排序操作时,通过在倒排索引基础上建立的正排索引数据结构来完成,即一个文档到词的列表映射,正排索引就是列式存储,它在数据字段的一列存储所有value,在排序聚合操作上回表现的更加高效,在es中被称为doc_values,它将所有单字段存储在单数列中,可以使聚合更快、更高效并且内存友好。

Doc Values是一种列式存储结构,在索引创建时与倒排索引同时生成,都是基于Segment生成并不变的,并序列化到磁盘。常被应用到以下场景:对字段进行排序或者聚合操作,某些过滤以及字段相关的脚本计算。

倒排索引能够基于一个词,快速访问包含耨个词的文档列表。但在排序,聚合的时候需要一种结构能够查询到文档到词的映射,这个时候倒排索引无法高效完成,eg:

当想要找到一个包含"brown"的文档,我们可以基于倒排索引快速访问到包含"brown"的文档,比如"doc_1"和"doc_2",然而,在聚合部分,我们需要找doc_1和doc_2中找到所有的词,在倒排索引完成代价很高,即不得不迭代索引中的每一个词,是否包含在doc_1和doc_2中,这个过程非常缓慢,因为随着文档词量增加,执行聚合的诗句就会随之增加。

通过以下查询体得到包含brown的文档的词的完整列表:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值