lit*_*til 4 aggregation elasticsearch
我对ElasticSearch聚合很新.我希望能够计算使用非空字段检索的文档数.
这是我用来计算有多少文档没有name
字段的方法.
{
"size": 3,
"query": {
"query_string": {
"query": "martin"
}
},
"aggs": {
"results_without_mb_id": {
"missing": {
"field": "name"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
它有效,但我想做的恰恰相反.有existing
汇总吗?
如上所述,只需将'missing'替换为'exists',并添加'filter'键,这样:
{ "size": 3,
"query": {
"query_string": {
"query" : "martin"
}
},
"aggs": {
"results_without_mb_id": {
"filter": {
"exists": {
"field": "name"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
您想使用“存在”过滤器。
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-exists-filter.html
下面是一个示例,它查找 authResult.codeID 存在的所有文档,然后对其运行聚合:
GET prodstarbucks/authEvent/_search
{
"size": 0,
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"exists": {
"field": "authResult.codeID"
}
}
}
},
"aggs": {
"users": {
"terms": {
"field": "authInput.userName.userNameNotAnalyzed",
"size": 5
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
}
注意:如果您只想对文档进行计数,则甚至不需要聚合,只需使用返回的“总”命中数即可。
归档时间: |
|
查看次数: |
6336 次 |
最近记录: |