我如何从记录中获取所有语言
的值并使它们唯一。
记录
PUT items/1
{ "language" : 10 }
PUT items/2
{ "language" : 11 }
PUT items/3
{ "language" : 10 }
查询
GET items/_search
{ ... }
# => Expected Response
[10, 11]
任何帮助都会很棒。
最佳答案
您可以使用 terms aggregation .
{
"size": 0,
"aggs" : {
"langs" : {
"terms" : { "field" : "language", "size" : 500 }
}
}}
聚合中的 size
参数指定要包含在聚合结果中的最大项数。如果您需要所有结果,请将此值设置为大于数据中唯一项数的值。
搜索将返回如下内容:
{
"took" : 16,
"timed_out" : false,
"_shards" : {
"total" : 2,
"successful" : 2,
"failed" : 0
},
"hits" : {
"total" : 1000000,
"max_score" : 0.0,
"hits" : [ ]
},
"aggregations" : {
"langs" : {
"buckets" : [ {
"key" : "10",
"doc_count" : 244812
}, {
"key" : "11",
"doc_count" : 136794
}, {
"key" : "12",
"doc_count" : 32312
} ]
}
}
}
关于ElasticSearch - 返回唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25465215/