使用阿里云试用Elasticsearch学习:5. 地理位置
    		       		warning:
    		            这篇文章距离上次修改已过432天,其中的内容可能已经有所变动。
    		        
        		                
                在使用Elasticsearch进行地理位置查询时,可以利用其内置的地理位置类型和相关查询。以下是一个简单的例子,展示如何创建一个包含地理位置信息的索引,并执行一个地理边界框查询。
PUT /attractions
{
  "mappings": {
    "restaurant": {
      "properties": {
        "name": {
          "type": "text"
        },
        "location": {
          "type": "geo_point"
        }
      }
    }
  }
}在这个例子中,我们创建了一个名为attractions的索引,并定义了一个名为restaurant的类型,其中包含一个name字段和一个location字段,用于存储地理位置信息。
接下来,我们可以添加一些文档:
POST /attractions/restaurant/_bulk
{ "index": {}}
{ "name": "McDonalds", "location": { "lat": 37.7749, "lon": -122.4194 } }
{ "index": {}}
{ "name": "Burger King", "location": { "lat": 40.7128, "lon": -74.0060 } }然后,我们可以执行一个地理边界框查询,找出在特定边界内的景点:
GET /attractions/restaurant/_search
{
  "query": {
    "geo_bounding_box": {
      "location": {
        "top_left": {
          "lat": 40.8,
          "lon": -73.
        },
        "bottom_right": {
          "lat": 40.7,
          "lon": -74.
        }
      }
    }
  }
}在这个查询中,我们指定了一个边界框,并查找在这个框子内的餐馆。这个查询将返回所有在指定的矩形边界内的景点。
评论已关闭