gpt4 book ai didi

elasticsearch - 如何获取按字段分组的最新文档?

转载 作者:行者123 更新时间:2023-12-03 01:53:28 25 4
gpt4 key购买 nike

我有一个index,其中许多documents都采用这种格式:

{
"userId": 1234,
"locationDate" "2016-07-19T19:24:51+0000",
"location": {
"lat": -47.38163,
"lon": 26.38916
}
}

在此索引中,我从用户那里获得了递增职位,每隔几秒钟更新一次。

我想执行一个搜索,该搜索将向我返回每个用户(按 locationDate分组)的最新职位(按 userId排序)

Elasticsearch 可能吗?我能做的最好的就是使用以下命令获取最近30秒的所有位置:
{"query":{
"filtered" : {
"query" : {
"match_all" : { }
},
"filter" : {
"range" : {
"locationDate" : {
"from" : "2016-07-19T18:54:51+0000",
"to" : null,
"include_lower" : true,
"include_upper" : true
}
}
}
}
}}

然后,我手动将它们整理出来,但是我想直接在 Elasticsearch 中执行此操作

重要信息:我正在使用elasticsearch 1.5.2

最佳答案

尝试此操作(使用聚合):

{
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"range": {
"locationDate": {
"from": "2016-07-19T18:54:51+0000",
"to": null,
"include_lower": true,
"include_upper": true
}
}
}
}
},
"aggs": {
"byUser": {
"terms": {
"field": "userId",
"size": 10
},
"aggs": {
"firstOne": {
"top_hits": {
"size": 1,
"sort": [
{
"locationDate": {
"order": "desc"
}
}
]
}
}
}
}
}
}

关于elasticsearch - 如何获取按字段分组的最新文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38466466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com