Ask*_*kMe 3 elasticsearch kibana kibana-5
我\xe2\x80\x99m 是 Kibana 和 Elasticsearch 的新手。我有一个名为 的字段名称serviceprovidername。我想知道该领域存在多少个不同的服务提供商名称。我怎样才能实现这个目标?
这是我到目前为止所尝试过的。
\n\n\n搜索查询
\n
GET _search{\xe2\x80\x9cages\xe2\x80\x9d: {\xe2\x80\x9cdistinct_serviceprovidername\xe2\x80\x9d:{\xe2\x80\x9cterms\xe2\x80\x9d:{\xe2\x80\x9cfield\xe2\x80\x9d :\xe2\x80\x9dserviceprovidername\xe2\x80\x9d}}}}\nRun Code Online (Sandbox Code Playgroud)\n如果我的原始数据是这样的
\n Serviceprovidername \n _______________________\n X\n Y\n X\n Y\n Y\n Z\nRun Code Online (Sandbox Code Playgroud)\nI\xe2\x80\x99m 例外结果为:
\n Serviceprovidername \n _______________________\n X\n Y\n Z\nRun Code Online (Sandbox Code Playgroud)\n
如果您可以在 Kibana > DevTools > Console 上运行以下“术语聚合”,那么它应该可以工作:
GET /_search
{
"size": 0,
"aggs" : {
"distinct_serviceprovidername" : {
"terms" : { "field" : "serviceprovidername" }
}
}
}
Run Code Online (Sandbox Code Playgroud)
该查询返回一个多桶值源,包括不同的serviceprovidername字段值,如下所示:
{
"took" : 0,
"timed_out" : false,
"_shards" : {
"total" : 3,
"successful" : 3,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : 15601,
"max_score" : 0.0,
"hits" : [ ]
},
"aggregations" : {
"distinct_serviceprovidername" : {
"doc_count_error_upper_bound" : 0,
"sum_other_doc_count" : 67,
"buckets" : [
{
"key" : "X",
"doc_count" : 301
},
{
"key" : "Y",
"doc_count" : 207
},
{
"key" : "Z",
"doc_count" : 175
}
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:"size": 0当需要聚合但不需要搜索命中时使用。在这种情况下,获取搜索命中没有任何意义,因此我忽略它,通过仅返回聚合结果来提高请求效率。
| 归档时间: |
|
| 查看次数: |
9295 次 |
| 最近记录: |