我有许多带有唯一引用的文档,但有些文档可能共享相同的哈希值。
此sql查询每个唯一哈希返回一行。
select hash, min(reference)
from moo
group by hash
由于引用是一个字符串,我无法在ElasticSearch中使用min聚合。
我已经能够使用以下ElasticSearch查询来完成此任务......
{
"from": 0,
"size": 0,
"aggs": {
"items": {
"terms": {
"field": "doc.hash"
},
"aggs": {
"id": {
"terms": {
"field": "doc.reference",
"size": 1
}
}
}
}
}
}
我想知道是否有更好的"方式吗
{
"from": 0,
"size": 0,
"aggs": {
"items": {
"terms": {
"field": "doc.hash",
"size": 5000
},
"aggs": {
"reference": {
"top_hits": {
"size": 1
}
}
}
}
}
}
我有这个作为替代方案,我只是觉得来自elasticsearch的回复是如此冗长。
即每个"哈希"我得到了所有这些
{
"key": "c8964350989772cc4348e72d217b89b8",
"doc_count": 17,
"reference": {
"hits": {
"total": 17,
"max_score": null,
"hits": [
{
"_index": "default",
"_type": "blah",
"_id": "e412c76b-b767-4c96-8cd6-ef8d6bf90acd",
"_score": null,
"_source": {
"meta": {
"rev": "1-00048ac556524b730000000002000001",
"flags": 33554433,
"expiration": 0,
"id": "e412c76b-b767-4c96-8cd6-ef8d6bf90acd"
}
},
}
]
}
}
}
当我真正想要的是两个值时,哈希和......
" key":" c8964350989772cc4348e72d217b89b8"," id":" e412c76b-b767-4c96-8cd6-ef8d6bf90acd"
想知道是否有办法减轻服务器上的负载以产生所有额外的毛病,并且如果有更简洁的方法来进行这种类型的查询。