(转)es 聚合查询并返回每个组的数据
轉自: https://blog.csdn.net/ywdhzxf/article/details/84878760
?
需求
我現在是有一個這樣的需求, 我需要在es里面按照 cityarea 進行分組(group by), 并且每個 cityarea的組 需要展示 按照時間排序的前10條, 狀態全部為1的數據
實現
? {
??? "query": {
????? "bool": {
??????? "must": [
????????? {
??????????? "term": {
????????????? "status": "1"???????? # 篩選條件, 狀態為 1 的
??????????? }
????????? }
??????? ]
????? }
??? },
??? "from": 0,
??? "size": 10,
??? "aggs": {
????? "top_score": {???????????????? ## 聚合名
??????? "terms": {
????????? "field": "cityarea",?????? ## 按照cityarea 進行分組
????????? "size": 30???????????????? ## 注意: 這個size 是必填的, 因為不填默認是10, 也就是說如果我有 11個cityarea組的話, 在這只能分10個組, 最后一組不顯示,
??????? },?????????????????????????????????? 個人建議根據分組情況寫一個較大的值
??????? "aggs": {
????????? "top_score_hits": {
??????????? "top_hits": {
????????????? "_source": [
??????????????? "name"????????????? ## 只展示name字段, 按照自己的需求來就行
????????????? ],
????????????? "size": 10,?????????? ## 這個size是每個組展示多少條數據, 默認是10
????????????? "sort": {
??????????????? "first_time": {
????????????????? "order": "desc"?? ## 按照時間進行排序
??????????????? }
????????????? }
??????????? }
????????? }
??????? }
????? }
??? }
? }
————————————————
版權聲明:本文為CSDN博主「小僵尸打字員」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/ywdhzxf/article/details/84878760
總結
以上是生活随笔為你收集整理的(转)es 聚合查询并返回每个组的数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (转)Elasticsearch 聚合查
- 下一篇: es7 bulk api 批量插入es