Elasticsearch ES实现GEO位置搜索
在Elasticsearch中,要实现GEO位置搜索,你需要定义一个包含geo_point
类型字段的映射,然后索引你的文档。以下是一个简单的例子:
- 创建一个包含
location
字段的映射:
PUT /my_locations
{
"mappings": {
"properties": {
"location": {
"type": "geo_point"
}
}
}
}
- 索引一个包含地理位置信息的文档:
POST /my_locations/_doc/1
{
"location": {
"lat": 40.12,
"lon": -71.34
}
}
- 执行一个地理位置搜索,例如查找距给定点1英里(1.6公里)以内的所有文档:
GET /my_locations/_search
{
"query": {
"geo_distance": {
"distance": "1km",
"location": {
"lat": 40,
"lon": -71
}
}
}
}
这个例子展示了如何创建一个包含地理位置信息的索引,如何索引一个点,以及如何执行一个基于该点的地理位置搜索。你可以根据需要调整距离和其他搜索参数。
评论已关闭