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为不显示搜索匹配
如果只用一种方式了解某样事物,你就不会真正了解它。了解事物真正含义的秘密取决于如何将其与我们所了解的其他事物相联系。通过联系,你可将想法内化于心,从各种角度看问题,直至找到适合自己的方法。这才是思考的真谛!
──马文·明斯基