我想发出一个查询,以弹性搜索过滤,按组,按总和聚合和排序。我有两个问题:查询应该如何以及弹性搜索对性能的影响是什么?filterby,groupby唯一字段值,总和聚合,orderby在elasticsearch查询链
让我举一个数据集来支持我的问题。比方说,我有一个集销售:
document type: 'sales' with the following fields and data:
sale_datetime | sold_product | sold_at_price
-----------------|---------------|--------------
2015-11-24 12:00 | some product | 100
2015-11-24 12:30 | some product | 100
2015-11-24 12:30 | other product | 100
2015-11-24 13:00 | other product | 100
2015-11-24 12:30 | some product | 200
2015-11-24 13:00 | some product | 200
我想发出一个查询,其中:
- 只考虑在时间间隔从2015年11月24日12:15销售到2015年11月24日12点45
- 组的结果通过sold_product字段
- 计算在顺序
- 返回行中的“过度每个产品sold_at_price值总和”,超过每PR sold_at_price值最大的“总和oduct'先来,然后是第二个,等等。
它应用到上面设置的样本数据,它会返回以下结果:
sold_product | sum of sold_at_price
--------------|--------------
some product | 300 // takes into account rows 2 and 5
other product | 100 // takes into account row 3
如果有可能发出这样的询问,什么是elasticsearch性能的重要意义?如果它的事项进行审议:
- 有很多(数十万,数百万潜在的未来)的独特产品
- 产品名称可以包含多个(几十)字/项(这是可能产生一个唯一的产品名称只包含1个字,但它几乎是数据量的两倍)
- 通常有很多(百万)记录满足时间范围过滤器(在某些情况下,过滤器可以缩小到几万记录在一定的时间范围内,但不能保证)
在此先感谢您的帮助!
谢谢!那是我需要的。我会考虑如何应用更多的过滤器来减少处理记录的总数。 – Andrew
很高兴帮助! – Val