[ "type" => "geo_point" ], "deliveryRadius"-6ren">
gpt4 book ai didi

elasticsearch - Elasticsearch 查询地理位置距离

转载 作者:行者123 更新时间:2023-12-03 01:37:44 24 4
gpt4 key购买 nike

我想按客户点获得交货半径内的资源。
我的映射如下:

 "restaurantPoint"       => [
"type" => "geo_point"
],
"deliveryRadius" => [
"type" => "float"
]

以及以下示例数据:
`"restaurantPoint": "35.73701996471125,51.409086138010025",
"deliveryRadius": 1`

因此,每个餐厅都有一个点和一个以km为单位的传递半径,另一方面,我们知道用户点。
在查询中,我想获得可以将食物运送到用户位置的餐馆。
我必须检查餐厅点和用户点之间的距离是否小于餐厅传送半径。

例如,如果用户与餐厅之间的距离为1公里,而餐厅配送半径为2公里,则可以选择该范围。

elastic search文件不完整,无法找到解决方案。

最佳答案

最后我用了脚本:

GET development-restaurants/restaurants/_search
{
"query": {
"bool" : {
"must" : {
"script" : {
"script" : {
"source": "doc['restaurantPoint'].arcDistance(35.73702, 51.40909) <= doc['deliveryRadius'].value",
"lang": "painless"
}
}
}
}
}
}

关于elasticsearch - Elasticsearch 查询地理位置距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51039461/

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