【发布时间】:2020-08-10 08:02:00
【问题描述】:
我有随机游走生成的这种格式的数据(模拟人们四处走动)。它以这种方式设置 { location : { lat: someLat, lon: someLong }, id: uniqueId, date:date }。我正在尝试编写一个给定用户唯一 ID 的查询,找出在特定时间范围内的给定 ID 的 X 距离内有多少其他唯一 ID。关于如何做到这一点的任何提示?
我的想法是拥有一个顶级过滤器聚合,以及某种嵌套的地理查询。我认为地理距离查询是要走的路,但我不知道如何将其包含到下面的查询中,以获取在我过滤的 ID X 距离内的所有唯一 ID。下面的查询是我开始的地方,我从现在过滤所有文档 - 1 天到现在,其中文档用户 ID 是提供的值。我将如何检查所有其他文档与匹配此查询的文档的距离?
{
"aggs" : {
"range": {
"date_range": {
"field": "date",
"format": "MM-yyyy",
"ranges": [
{ "to": "now" },
{ "from": "now-1d" }
]
}
},
"locations" : {
"filter" : {
"term": { "id.keyword": "7a50ab18-886b-42a2-80ad-3d45112e3cfd" }
}
}
}
}
【问题讨论】:
标签: elasticsearch