企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 查询地理形状 地理形状一个不寻常的地方在于它运行我们使用形状来做查询,而不仅仅是坐标点。 举个例子,当我们的用户刚刚迈出阿姆斯特丹中央火车站时,我们可以用如下方式,查询出方圆1km内所有的地标: ```json GET /attractions/landmark/_search { "query": { "geo_shape": { "location": { <1> "shape": { <2> "type": "circle", <3> "radius": "1km" "coordinates": [ <4> 4.89994, 52.37815 ] } } } } } ``` - <1> 查询使用 `location` 字段中的地理形状; - <2> 查询中的形状是由`shape`键对应的内容表示; - <3> 形状是一个半径为1km的圆形; - <4> 安姆斯特丹中央火车站入口的坐标点。 默认,查询(或者过滤器 —— 工作方式相同)会从已索引的形状中寻找与指定形状有交集的形状。 此外,`relation` 也可以设置为 `disjoint`来查找与指定形状不相交的,或者设置为`within`来查找完全落在查询形状中的。 举个例子,我们查找所有落在阿姆斯特丹内的地标: ```json GET /attractions/landmark/_search { "query": { "geo_shape": { "location": { "relation": "within", <1> "shape": { "type": "polygon", "coordinates": [[ <2> [4.88330,52.38617], [4.87463,52.37254], [4.87875,52.36369], [4.88939,52.35850], [4.89840,52.35755], [4.91909,52.36217], [4.92656,52.36594], [4.93368,52.36615], [4.93342,52.37275], [4.92690,52.37632], [4.88330,52.38617] ]] } } } } } ``` - <1> 只匹配完全落在查询形状中的(已索引)形状。 - <2> 这个多边形表示安姆斯特丹中心。