Elasticsearch geo_polygon
时间: 2024-07-30 12:01:31 浏览: 47
Elasticsearch 的 `geo_polygon` 功能是一种地理空间查询条件,它允许你在搜索文档时指定一个由多边形组成的区域。当你需要筛选出位于特定几何形状内的地理位置数据时,这个特性非常有用。
`geo_polygon` 查询通常用于查询点是否在一个多边形内、边界上或外部。你可以使用 GeoJSON 格式来定义多边形,这包括一个数组的数组结构,其中每个内部数组包含多边形的每条线段的两个坐标点。例如:
```json
{
"query": {
"geo_polygon": {
"location": [
[40.7128, -74.0060], // 西点
[40.7739, -73.9472], // 东点
[40.7739, -74.0840], // 北点
[40.7128, -74.0840] // 南点
]
}
}
}
```
这个查询会返回所有位置字段 (location) 的值落入这个纽约市曼哈顿区形状内的文档。
相关问题
elasticsearch8函数有哪些
您好,elasticsearch8函数包括:match、term、range、exists、prefix、wildcard、regexp、fuzzy、type、ids、geo_distance、geo_bounding_box、geo_polygon、bool、must、must_not、should、filter、aggregations等。希望能够帮到您。
java获得数组交叉点_java – 如何从ElasticSearch中的形状获取交叉点
您可以使用Elasticsearch的GeoShape查询来获得形状之间的交叉点。以下是一个示例查询:
```
POST /your-index/_search
{
"query": {
"bool": {
"filter": {
"geo_shape": {
"location": {
"shape": {
"type": "polygon",
"coordinates": [
[
[100.0, 0.0],
[101.0, 0.0],
[101.0, 1.0],
[100.0, 1.0],
[100.0, 0.0]
]
]
},
"relation": "intersects"
}
}
}
}
}
}
```
在上面的查询中,“location”是存储形状的字段,您需要将其替换为您的字段名称。查询使用一个多边形形状,您可以根据需要替换它。查询使用“intersects”关系来查找形状之间的交叉点。您可以根据需要更改关系。查询将返回与形状相交的所有文档。
阅读全文