我是Kibana和Elasticsearch的新手。
我有一个名为# MERGE ON INDICATORS (FULL OUTER JOIN)
merge_df <- merge(un_1, ets_1, by=c("country", "iso2", "year", "sector"),
all=TRUE, suffixes=c("", "_"))
final_df <- within(merge_df, {
# FILL IN MISSINGS WITH UNDERSCORE COLS
UNemissions <- ifelse(is.na(UNemissions), UNemissions_, UNemissions)
ETSemissions <- ifelse(is.na(ETSemissions), ETSemissions_, ETSemissions)
# REMOVE FILL-IN UNDERSCORE COLS
UNemissions_ <- NULL
ETSemissions_ <- NULL
})
的字段名称。我想查找此字段中存在多少个不同的服务提供商名称。我该如何实现?
这是我到目前为止尝试过的。
搜索查询
serviceprovidername
如果我的原始数据是这样的
GET _search{“ages”: {“distinct_serviceprovidername”:{“terms”:{“field” :”serviceprovidername”}}}}
我的结果除外:
Serviceprovidername
_______________________
X
Y
X
Y
Y
Z
请帮助
答案 0 :(得分:1)
如果您可以在Kibana> DevTools>控制台上运行以下“术语聚合”,则该术语应适用:
GET /_search
{
"size": 0,
"aggs" : {
"distinct_serviceprovidername" : {
"terms" : { "field" : "serviceprovidername" }
}
}
}
查询返回一个多桶值源,其中包括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
用于需要汇总但不需要搜索匹配的情况。在这种情况下,获取搜索结果没有任何意义,因此我忽略了它,只返回聚合结果就可以提高请求的效率。
答案 1 :(得分: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
}
}
}
}
}
希望这会有所帮助:)
答案 2 :(得分:-1)
我在基巴纳州没有发现一种“与众不同”的东西。不过,我可以按照建议在x-y轴上进行绘制。谢谢您的帮助。