elasticsearch 此SQL的等效ElasticSearch查询是什么
我有许多具有唯一引用的文档,但有些文档可能共享相同的哈希 此sql查询为每个唯一哈希返回一行elasticsearch 此SQL的等效ElasticSearch查询是什么,elasticsearch,aggregation,elasticsearch,Aggregation,我有许多具有唯一引用的文档,但有些文档可能共享相同的哈希 此sql查询为每个唯一哈希返回一行 select hash, min(reference) from moo group by hash 由于引用是一个字符串,我不能在ElasticSearch中使用最小聚合 我已经能够通过以下ElasticSearch查询来完成这项工作 { "from": 0, "size": 0, "aggs": { "items": { "t
select hash, min(reference)
from moo
group by hash
由于引用是一个字符串,我不能在ElasticSearch中使用最小聚合
我已经能够通过以下ElasticSearch查询来完成这项工作
{
"from": 0,
"size": 0,
"aggs": {
"items": {
"terms": {
"field": "doc.hash"
},
"aggs": {
"id": {
"terms": {
"field": "doc.reference",
"size": 1
}
}
}
}
}
}
我想知道有没有更好的办法
我有这个选择,我只是觉得elasticsearch的响应太冗长了
i、 对于每个散列,我得到所有这些结果
{
"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"
}
},
}
]
}
}
}
当我真正想要的是两个值,散列和
密钥:c8964350989772cc4348e72d217b89b8,id:e412c76b-b767-4c96-8cd6-ef8d6bf90acd
我想知道是否有办法减轻服务器上的负载以生成所有额外的绒毛,是否有更干净的方法来执行该类型的查询。上述es查询是否返回min doc.reference,我不在乎mindoc.reference我只想每个hash.FWIW一个如果你想min你可以使用我添加了top_hits版本和一条关于它的评论,非常感谢你的输入。你可以使用top hits获得你想要的响应字段。此外,如果你想在顶部点击分钟,我会添加一个排序块和排序的参考。这将取决于未分析的引用映射方式。文章中的示例文档有助于更好地理解,响应中显示的文档似乎没有散列或引用字段
{
"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"
}
},
}
]
}
}
}