Elasticsearch max字段与唯一字段相结合



我有一个包含两个字段的索引:

  • 名称: UUID
  • 版本:长

我现在只想计算名称版本最高的文档(在非常大的索引 [100 万 + 条目]上(。例如,对具有以下文档的索引进行查询:

{name="a", version=1} 
{name="a", version=2}
{name="a", version=3}
{name="b", version=1}

。将返回:

count=2

这在某种程度上可能吗?我找不到这个特定问题的解决方案。

您正在有效地描述不同名称的计数,您可以使用基数聚合来做到这一点。

请求:

GET test1/_search
{
"aggs" : {
"distinct_count" : {
"cardinality" : {
"field" : "name.keyword"
}
}
},
"size": 0
}

响应:

{
"took" : 1,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : 4,
"max_score" : 0.0,
"hits" : [ ]
},
"aggregations" : {
"distinct_count" : {
"value" : 2
}
}
}

相关内容

  • 没有找到相关文章

最新更新