ElasticSearch超强聚合查询(一)

本文介绍了ElasticSearch的聚合查询,包括聚合与搜索的区别、高阶概念如Buckets和Metrics,通过汽车销售数据展示了如何进行颜色销量统计、平均价格计算、桶的嵌套以及查询制造商的最高和最低价格。
摘要由CSDN通过智能技术生成

Elasticsearch聚合查询一

作者:ydw

地点:武汉

联系方式:hyl9900208@163.com

聚合与搜索的概念

通俗的说:搜索是查找某些具体的文档.然而聚合就是对这些搜索到的文档进行统计.例如:

(你的es数据里面记录的都是一些关于针的数据)

  • 针的平均长度是多少?
  • 按照针的制造商来分组,针的长度中位值是多少?
  • 每个月加入到某地区中的针有多少?

上面这些问题就是数据的聚合.聚合还可以有更加细致的问题:

  • 最受欢迎的针的制造商是什么?
  • 在数据中是否有异常的针?

聚合可以计算很多我们需要的数据,这些数据统计在关系行数据中的计算可能要花很长的时间,但是在Elasticsearch中,虽然这个和实现查询的功能不同,但是他们使用相同的数据结构,它可以很快的速度就能把这些数据计算出来,就和查询的速度几乎是一样的,而且这些数据结果还是实时的.这个就是Elasticsearch用得比较广泛的原因之一.

高阶概念

  • Buckets(桶/集合):满足特定条件的文档的集合
  • Metrics(指标):对桶内的文档进行统计计算(例如最小值,求和,最大值等).

举例说明—关于汽车数据的相关聚合(Index=cars;type=transactions)

  • 第一步添加创建相关的数据
POST /cars/transactions/_bulk
{ "index": {}}
{ "price" : 10000, "color" : "red", "make" : "honda", "sold" : "2014-10-28" }
{ "index": {}}
{ "price" : 20000, "color" : "red", "make" : "honda", "sold" : "2014-11-05" }
{ "index": {}}
{ "price" : 30000, "color" : "green", "make" : "ford", "sold" : "2014-05-18" }
{ "index": {}}
{ "price" : 15000, "color" : "blue", "make" : "toyota", "sold" : "2014-07-02" }
{ "index": {}}
{ "price" : 12000, "color" : "green", "make" : "toyota", "sold" : "2014-08-19" }
{ "index": {}}
{ "price" : 20000, "color" : "red", "make" : "honda", "sold" : "2014-11-05" }
{ "index": {}}
{ "price" : 80000, "color" : "red", "make" : "bmw", "sold" : "2014-01-01" }
{ "index": {}}
{ "price" : 25000, "color" : "blue", "make" : "ford", "sold" : "2014-02-12" }

注意点:官方文档说明,如何设置fildData.

Fielddata is disabled on text fields by default. Set fielddata=true on

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值