在 ElasticSearch 中查询所有具有 intersects/within 索引地理形状的地理点的文档
Querying ElasticSearch for all documents with a Geo Point that intersects/within an indexed Geo Shape
我从一个已索引到 ES 的形状文件中提取了 geo_shapes 的集合。我还有大量 geo_points 的文档索引。我正在尝试 运行 查询 returns 所有在 geo_shape 中有一个点的文档,但一直返回零结果。
我很确定映射是正确的,因为我可以查询特定的 lat/long 并成功取回它所在的 geo_shape。我也可以做一个边界框使用 geo_points 搜索文档并成功返回匹配的文档列表。
这是我的 geo_shapes 的映射:
{
"geometry": {
"properties": {
"type": "geo_shape",
"tree": "quadtree"
}
}
}
这是 geo_points:
文档的映射
{
"docs": {
"location": {
"properties": {
"coordinates": {
"type": "geo_point",
"geohash": true
}
}
}
}
}
我正在尝试 运行 的查询是:
{
"query": "geo_shape": {
"location": {
"indexed_shape": {
"id": "shape_id",
"type": "locations",
"index": "index_name",
"path": "geometry"
}
}
}
}
我正在 运行 对特定的 index/type 进行查询,其中包含具有 geo_points 的文档。如果我 运行 它针对整个索引,那么只有 geo_shape 文档 returns.
为了使其正常工作,您的第二个索引中的位置也需要映射为 geo_shape
(类型=点)(而不是 geo_point
),如下所示:
{
"locations": {
"location": {
"properties": {
"coordinates": {
"type": "geo_shape",
"tree": "quadtree",
"precision": "1m"
}
}
}
}
}
然后您的 geo_shape
查询 pre-indexed shapes 将按预期工作
我从一个已索引到 ES 的形状文件中提取了 geo_shapes 的集合。我还有大量 geo_points 的文档索引。我正在尝试 运行 查询 returns 所有在 geo_shape 中有一个点的文档,但一直返回零结果。
我很确定映射是正确的,因为我可以查询特定的 lat/long 并成功取回它所在的 geo_shape。我也可以做一个边界框使用 geo_points 搜索文档并成功返回匹配的文档列表。
这是我的 geo_shapes 的映射:
{
"geometry": {
"properties": {
"type": "geo_shape",
"tree": "quadtree"
}
}
}
这是 geo_points:
文档的映射{
"docs": {
"location": {
"properties": {
"coordinates": {
"type": "geo_point",
"geohash": true
}
}
}
}
}
我正在尝试 运行 的查询是:
{
"query": "geo_shape": {
"location": {
"indexed_shape": {
"id": "shape_id",
"type": "locations",
"index": "index_name",
"path": "geometry"
}
}
}
}
我正在 运行 对特定的 index/type 进行查询,其中包含具有 geo_points 的文档。如果我 运行 它针对整个索引,那么只有 geo_shape 文档 returns.
为了使其正常工作,您的第二个索引中的位置也需要映射为 geo_shape
(类型=点)(而不是 geo_point
),如下所示:
{
"locations": {
"location": {
"properties": {
"coordinates": {
"type": "geo_shape",
"tree": "quadtree",
"precision": "1m"
}
}
}
}
}
然后您的 geo_shape
查询 pre-indexed shapes 将按预期工作