【发布时间】:2021-08-03 21:10:42
【问题描述】:
我有 2 个弹性搜索索引,一个带有用户位置,另一个带有“位置值”
"userlocation" : {
"aliases" : { },
"mappings" : {
"properties" : {
"_class" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"email" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"latitude" : {
"type" : "float"
},
"longitude" : {
"type" : "float"
},
"timestamp" : {
"type" : "long"
}
}
},
{
"locationvalues" : {
"aliases" : { },
"mappings" : {
"properties" : {
"LocationLat" : {
"type" : "double"
},
"LocationLong" : {
"type" : "double"
},
"Source" : {
"type" : "text"
},
"TimeStamp" : {
"type" : "date",
"format" : "epoch_millis"
},
"Value" : {
"type" : "double"
}
}
},
在对应的时间戳(+- 10 分钟)上,无论如何从位置值中获取距离用户位置最近的位置?我必须指定 userlocation 中的时间戳与 locationvalue 中的时间戳具有不同的值。
时间戳的格式为纪元 UNIX 毫秒! locationvalues 有超过 100k 个元素/月和 userlocation 超过 5000 个。
【问题讨论】:
-
您能否详细说明您的问题?您打算如何查询,每个用户位置一个查询?您使用的是哪个版本的 Elasticstack?你如何索引你的数据? (您当前的映射不允许按预期进行查询。需要更改地理坐标和时间戳)。我正在等待您的意见,然后回答您的问题
-
我需要根据用户位置来近似污染数据。在“locationvalues”中,我有污染数据,对于“userlocation”中的每个值,我需要从“userlocation”中获取最接近的值。我使用 Elasticstack 7.10.1,我无法修改地理坐标和时间戳,因为我只是读取数据。谢谢@DanielSchneiter!
标签: javascript java spring-boot elasticsearch elastic-stack