地理位1置搜索:使用查询API进行搜索
1、Geo Distance Query
Geo Distance Query是在给定的距离范围内搜索数据的查询。例如,可以搜索给定地理位置附近指定距离内的所有文档。
GET /my_index/_search { "query": { "bool" : { "filter" : { "geo_distance" : { "distance" : "5km", "location" : { "lat" : 40, "lon" : -70 } } } } } }
2、 Geo Bounding Box Query
Geo Bounding Box Query是一种以四边形形式搜索地理坐标数据的查询。它可以定义顶点坐标来定义一个范围,在该范围内返回所有文档。 一句话,查询在一个框内的文档。
GET /my_index/_search
{
"query": {
"bool" : {
"filter" : {
"geo_bounding_box" : {
"location" : {
"top_left" : {
"lat" : 40.73,
"lon" : -74.1
},
"bottom_right" : {
"lat" : 40.01,
"lon" : -71.12
}
}
}
}
}
}
}
通过经纬度计算距离:
java计算两个经纬度之间的距离_java经纬度计算距离_谱写的博客-CSDN博客
java 经纬度距离计算_java经纬度距离计算公式_Yweir的博客-CSDN博客 (最好)
收集到的好文章
Elasticsearch Geo:以地理位置为中心的搜索与分析_笔记大全_设计学院
Elasticsearch 在地理信息空间索引的探索和演进 - 知乎
https://www.cnblogs.com/lijunhao/p/5341297.html
https://www.cnblogs.com/softfair/p/lat_lon_distance_bearing_new_lat_lon.html
最好的空间查询例子
Elasticsearch:使用 Elasticsearch 进行地理位置搜索 - 知乎
Elasticsearch 基于地理位置的搜索查询_es地理位置查询_潇潇雨歇_的博客-CSDN博客
Elasticsearch 核心技术(十):GEO 地理查询(geo_bounding_box、geo_distance、geo_shape)