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为不显示搜索匹配