我正在构建一个旅游应用程序,其搜索功能使用Elasticsearch实现。 我已将公交车站的详细信息及其地理位置编入索引,如下文所示 示例文档
{
"name": "North Stand",
"location": {
"lat": 1.1,
"lon": 1.54
}
}
因此,它的一个功能是从用户当前位置找到到附近公交车站的距离。我怎么能在Elasticsearch中做到这一点?
答案 0 :(得分:0)
您可以使用geo_distance_range过滤器/查询。 geo_distance_range
但首先,您需要将位置映射为geoPoint。
{
"bool" : {
"must" : {
"match_all" : {}
},
"filter" : {
"geo_distance_range" : {
"from" : "2km",
"to" : "6km",
"location" : {
"lat": 1.1,
"lon": 1.54
}
}
}
}
}