我有'形状'存储许多巨大地理形状的索引(一个地理形状的原始shapefile大小为6MB)。
我正在使用此映射:
"shape": {
"type": "geo_shape",
"tree": "quadtree",
"tree_levels": "20"
},
"_all": {
"enabled": false
},
"dynamic": "true"
我也有照片'指数。每张照片的纬度和经度都显示为带有Point类型的地理位置。 e.g。
"location": {
"type": "Point",
"coordinates": [
-103.262600,
43.685315
]
}
映射:
"location": {
"type": "geo_shape",
"tree": "quadtree",
"tree_levels": 20
}
我尝试使用以下查询找到位于所选形状内的所有照片:
GET photos/_search
{
"query": {
"filtered": {
"filter": {
"geo_shape": {
"location": {
"relation": "intersects",
"indexed_shape": {
"id": "huge_region_shape_id",
"type": "country",
"index": "shapes",
"path": "shape"
}
}
}
},
"query": {
"match_all": {}
}
}
}
}
的问题:
1)在巨大的形状上,这个查询会执行几分钟或永久。
2)如果"形状"只是通过一些参数搜索形状需要花费很多时间。包含在源代码中,但如果我将其排除 - geo_shape过滤器将抛出异常 - "找到Shape但缺少字段"
在制图中:
_source: {
excludes : ['shape']
}
有没有办法解决这个问题?