elasticsearch聚合--内存控制篇

本文探讨了Elasticsearch中的聚合操作,特别是涉及到内存控制的方面,提到了fielddata和doc values在内存使用上的策略,以及如何通过filter优化,例如忽略tf小于0.01的数据,以适应不同业务场景的需求。
摘要由CSDN通过智能技术生成
elasticsearch除了提供检索功能之外,还能做更多的事情,比如近实时的数据分析。对此elasticsearch提供了聚合aggregation模块,这比之前的facet模块更加强大。具体提供的聚合类型本文不再介绍,而是重点关注aggr模块中关于内存控制的一些事情。
1:Fielddata
aggr大量使用fielddata,fielddata也是es中的内存大户。众所周知,倒排索引建立了term到doc之间的映射,因此适合快速查询匹配term的doc。而aggr的应用场景恰恰是相反的,因此需要建立doc到term之间的映射关系,这就是fielddata。
(1) analyzed vs not_analyzed:
如果是分词字段,则该字段的值被拆解成为多个term,如果是针对term的聚合操作就会出现意向不到的结果,所以要根据应用场景来决定是对分词字段进行聚合还是对不分词字段进行聚合操作,当然这种错误是比较容易发现的,在multifield的前提下可以及时作出调整。
对于基数很高的string类型的分词字段,如果进行聚合操作,fielddata会非常大,加载到内存中会有隐患。分词进程通常会产生大量term,并且很多term都是唯一的,这就增加了这个field的总体基数&#
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值