【发布时间】:2021-06-01 11:30:40
【问题描述】:
我想从 Elasticsearch 查询中检索可变距离内的所有点。 假设我有 2 家商店,一家愿意在最长 3 公里的范围内送货,另一家愿意在最长 5 公里的范围内送货:
PUT /my_shops/_doc/1
{
"location": {
"lat": 40.12,
"lon": -71.34
},
"max_delivery_distance": 3000
}
PUT /my_shops/_doc/2
{
"location": {
"lat": 41.12,
"lon": -72.34
},
"max_delivery_distance": 5000
}
对于给定的位置,我想知道哪些商店可以送货。如果给定位置在 3 公里以内,IE 查询应该返回 shop1,如果给定位置在 5 公里以内,则返回 shop2
GET /my_shops/_search
{
"query": {
"bool": {
"must": {
"match_all": {}
},
"filter": {
"geo_distance": {
"distance": max_delivery_distance,
"location": {
"lat": 40,
"lon": -70
}
}
}
}
}
}
【问题讨论】:
标签: elasticsearch filter distance