Elasticsearch 核心技术:GEO 地理查询(geo_bounding_box、geo_distance、geo_shape)
在Elasticsearch中,GEO查询主要用于查找与特定地理位置相关的数据。以下是一些常用的GEO查询以及相应的代码示例:
geo_bounding_box
查询:查找在特定矩形边界框内的点。
GET /_search
{
"query": {
"geo_bounding_box": {
"location": {
"top_left": {
"lat": 41.12,
"lon": -71.3
},
"bottom_right": {
"lat": 40.12,
"lon": -72.3
}
}
}
}
}
geo_distance
查询:查找在特定距离范围内的点。
GET /_search
{
"query": {
"geo_distance": {
"distance": "20km",
"location": {
"lat": 40,
"lon": -70
}
}
}
}
geo_polygon
查询:查找在特定多边形内的点。
GET /_search
{
"query": {
"geo_polygon": {
"location": {
"points": [
{
"lat": 40,
"lon": -70
},
{
"lat": 30,
"lon": -80
},
{
"lat": 20,
"lon": -90
}
]
}
}
}
}
请注意,这些查询都需要在Elasticsearch中有地理位置字段,并且在索引时需要使用特定的地理数据格式。在实际应用中,需要根据具体的Elasticsearch版本和索引结构进行调整。
评论已关闭