Elasticsearch 地理形状索引、查询及关系处理全解析
1. 地理形状索引相关概念
在对多边形进行索引时,其中心连续的大区域可以用短的地理哈希(geohash)低成本表示,而边缘部分则需要更小的地理哈希才能准确表示。distance_error_pct参数用于指定基于形状大小的最大允许误差,默认值为 0.025(即 2.5%)。这意味着大形状(如国家)的边缘可以比小形状(如纪念碑)更模糊。默认值 0.025 是一个不错的起始点,允许的误差越大,对形状进行索引所需的词条就越少。
2. 地理形状的表示与索引
地理形状使用 GeoJSON 表示,这是一种在 JSON 中编码二维形状的简单开放标准。每个形状定义包含形状类型(点、线、多边形、包络等)以及一个或多个经纬度点数组。在 GeoJSON 中,坐标总是先写经度,再写纬度。
以下是一个对阿姆斯特丹水坝广场(Dam Square)多边形进行索引的示例:
PUT /attractions/landmark/dam_square { "name" : "Dam Square, Amsterdam", "location" : { "type" : "polygon", "coordinates" : [[ [ 4.89218, 52.37356 ], [ 4.89205, 52.37276 ], [ 4.89301, 52.37274 ], [ 4.89392, 52.