我目前正在建立一个餐厅搜索网站。我列出了有关餐馆的数据,并使用elasticsearch为它们编制了索引。示例文件如下:
{
"name" : "My Paris restaurant",
"cuisines": "chinese",
"location" : {
"lat" : 1.10,
"lon" : 1.54
}
}
在这里你可以看到我列出了地理位置数据。现在我要计算用户的当前位置到列出的酒店之间的距离。如何在elasticsearch中做到这一点?
1条答案
按热度按时间68de4m5k1#
据我所知,您需要找出离当前用户位置最近的酒店。我假设您已经完成了到位置字段的地理点Map。下面的查询解释了,我们如何实现您的目标:
这里有一个名为origin的字段,需要输入用户的当前位置。这将计算到最近的酒店的距离,然后使用“功能评分”查询根据它们的接近程度对它们进行评分。附近最近的餐馆得分较高。
或者如果你需要找到实际的距离,有一些方法我在这个博客中解释过。