Kibana 中的 SQL “Distinct” 等价物是什么?
What is the SQL “Distinct” equivalent in Kibana?
我是 Kibana 和 Elasticsearch 的新手。
我有一个名为 serviceprovidername
的字段名称。我想找出该字段中存在多少个不同的服务提供商名称。我怎样才能做到这一点?
这是我目前尝试过的方法。
search query
GET _search{“ages”: {“distinct_serviceprovidername”:{“terms”:{“field” :”serviceprovidername”}}}}
如果我的原始数据是这样的
Serviceprovidername
_______________________
X
Y
X
Y
Y
Z
我排除的结果是:
Serviceprovidername
_______________________
X
Y
Z
请帮忙
如果您可以在 Kibana > DevTools > Console 上运行,以下 "terms aggregation" 应该可以工作:
GET /_search
{
"size": 0,
"aggs" : {
"distinct_serviceprovidername" : {
"terms" : { "field" : "serviceprovidername" }
}
}
}
查询 returns 一个多桶值源,包括 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
}
]
}
}
}
编辑:"size": 0
在需要聚合但不需要搜索命中时使用。在这种情况下,获取搜索命中没有任何意义,所以我忽略了它,通过仅返回聚合结果来提高请求效率。
在我的例子中,它与通配符搜索和正则表达式完美配合。
我的数据是这样的Tags:All Docs,Domains,ToAnalyse,Unique
我在标签列上应用了过滤器并获得了唯一计数。
下面是我的查询:
GET test1/_search
{
"aggs": {
"7772": {
"filters": {
"filters": {
"Unique": {
"query_string": {
"query": "Tags:Unique",
"analyze_wildcard": true,
"default_field": "*"
}
},
"ToAnalyse": {
"query_string": {
"query": "Tags:To.*",
"analyze_wildcard": true,
"default_field": "*"
}
},
"All Docs": {
"query_string": {
"query": "Tags:All Docs",
"analyze_wildcard": true,
"default_field": "*"
}
},
"Outdated": {
"query_string": {
"query": "Tags:Outdated",
"analyze_wildcard": true,
"default_field": "*"
}
},
"Domains": {
"query_string": {
"query": "Tags:Domains",
"analyze_wildcard": true,
"default_field": "*"
}
}
}
}
}
},
"size": 0,
"_source": {
"excludes": []
}
}
我的输出:
{
"took" : 12,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : 152636,
"max_score" : 0.0,
"hits" : [ ]
},
"aggregations" : {
"7772" : {
"buckets" : {
"All Docs" : {
"doc_count" : 152636
},
"Domains" : {
"doc_count" : 43374
},
"Outdated" : {
"doc_count" : 24322
},
"ToAnalyse" : {
"doc_count" : 128260
},
"Unique" : {
"doc_count" : 152636
}
}
}
}
}
希望这对您有所帮助:)
我没有在 Kibana 中找到“不同”的东西。但是我可以在 x-y 轴上将其绘制为 suggested.Thanks 以获得帮助。
我是 Kibana 和 Elasticsearch 的新手。
我有一个名为 serviceprovidername
的字段名称。我想找出该字段中存在多少个不同的服务提供商名称。我怎样才能做到这一点?
这是我目前尝试过的方法。
search query
GET _search{“ages”: {“distinct_serviceprovidername”:{“terms”:{“field” :”serviceprovidername”}}}}
如果我的原始数据是这样的
Serviceprovidername
_______________________
X
Y
X
Y
Y
Z
我排除的结果是:
Serviceprovidername
_______________________
X
Y
Z
请帮忙
如果您可以在 Kibana > DevTools > Console 上运行,以下 "terms aggregation" 应该可以工作:
GET /_search
{
"size": 0,
"aggs" : {
"distinct_serviceprovidername" : {
"terms" : { "field" : "serviceprovidername" }
}
}
}
查询 returns 一个多桶值源,包括 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
}
]
}
}
}
编辑:"size": 0
在需要聚合但不需要搜索命中时使用。在这种情况下,获取搜索命中没有任何意义,所以我忽略了它,通过仅返回聚合结果来提高请求效率。
在我的例子中,它与通配符搜索和正则表达式完美配合。
我的数据是这样的Tags:All Docs,Domains,ToAnalyse,Unique
我在标签列上应用了过滤器并获得了唯一计数。
下面是我的查询:
GET test1/_search
{
"aggs": {
"7772": {
"filters": {
"filters": {
"Unique": {
"query_string": {
"query": "Tags:Unique",
"analyze_wildcard": true,
"default_field": "*"
}
},
"ToAnalyse": {
"query_string": {
"query": "Tags:To.*",
"analyze_wildcard": true,
"default_field": "*"
}
},
"All Docs": {
"query_string": {
"query": "Tags:All Docs",
"analyze_wildcard": true,
"default_field": "*"
}
},
"Outdated": {
"query_string": {
"query": "Tags:Outdated",
"analyze_wildcard": true,
"default_field": "*"
}
},
"Domains": {
"query_string": {
"query": "Tags:Domains",
"analyze_wildcard": true,
"default_field": "*"
}
}
}
}
}
},
"size": 0,
"_source": {
"excludes": []
}
}
我的输出:
{
"took" : 12,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : 152636,
"max_score" : 0.0,
"hits" : [ ]
},
"aggregations" : {
"7772" : {
"buckets" : {
"All Docs" : {
"doc_count" : 152636
},
"Domains" : {
"doc_count" : 43374
},
"Outdated" : {
"doc_count" : 24322
},
"ToAnalyse" : {
"doc_count" : 128260
},
"Unique" : {
"doc_count" : 152636
}
}
}
}
}
希望这对您有所帮助:)
我没有在 Kibana 中找到“不同”的东西。但是我可以在 x-y 轴上将其绘制为 suggested.Thanks 以获得帮助。