我想發出一個查詢,以彈性搜索過濾,按組,按總和聚合和排序。我有兩個問題:查詢應該如何以及彈性搜索對性能的影響是什麼?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