es filter Aggregations

查询balance 大于20000,小于30000的数据

GET /bank/_search
{
  "query": {
    "bool": {
      "must": { "match_all": {} },
      "filter": {
        "range": {
          "balance": {
            "gte": 20000,
            "lte": 30000
          }
        }
      }
    }
  }
}

top10
size :0 的含义是只想看到聚合结果字段,而非全字段。

GET /bank/_search
{
  "size": 0,
  "aggs": {
    "group_by_state": {
      "terms": {
        "field": "state.keyword"
      }
    }
  }
}

like sql

SELECT state, COUNT(*) FROM bank GROUP BY state ORDER BY COUNT(*) DESC

avergae_balance 作为平均值。
对平均值进行倒叙排序

GET /bank/_search
{
  "size": 0,
  "aggs": {
    "group_by_state": {
      "terms": {
        "field": "state.keyword",
        "order": {
          "average_balance": "desc"
        }
      },
      "aggs": {
        "average_balance": {
          "avg": {
            "field": "balance"
          }
        }
      }
    }
  }
}

猜你喜欢

转载自blog.csdn.net/ppwwp/article/details/109456450