elk之elasticsearch search bool(2)

bool查支持filter子句,这些子句允许我们使用查询来限制将与其他子句匹配的文档,而不会更改计算得分的方式。

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

bool查询包含match_all查询(查询部分)和range查询(过滤部分)。我们可以将任何其他查询替换为查询和过滤器部分

聚合

大致等同于SQL GROUP BY和SQL聚合函数

GET / bank / _search { 
  “size”:0,
  “aggs”:{ 
    “group_by_state”:{ 
      “terms”:{ 
        “field”:“state.keyword” 
      },
      “aggs”:{ 
        “average_balance”:{ 
          “avg “:{ 
            ”field“:”balance“ 
          } 
        } 
      } 
    } 
  } 
}
意思类似于
SELECT state, COUNT(*) FROM bank GROUP BY state ORDER BY COUNT(*) DESC LIMIT 10;(默认前十个)
设置size=0为不显示搜索匹配
posted @ 2018-12-17 19:52  天雨流芳=.=  阅读(172)  评论(0编辑  收藏  举报