Elasticsearch - 根据另一个文档 geo_shape 搜索具有 geo_shape 的文档

Elasticsearch - seach document with geo_shape based on other document geo_shape

在 ElasticSearch 中是否有一个选项可以像这样使用一个查询来执行搜索:

  1. 获取 ID = 1 的文档
  2. 此文档有一个字段具有 geo_shape 映射
  3. 从该字段获取值
  4. 搜索 geo_shape 字段与 doc(id=1) 相交的其他文档 geo_shape
  5. Return 找到文档

是的,您可以使用 pre-indexed shapes 来达到这个目的。

POST /_search
{
    "query": {
        "bool": {
            "must": {
                "match_all": {}
            },
                "filter": {
                    "geo_shape": {
                        "your_shape_field": {
                            "indexed_shape": {
                                "id": "1",
                                "type": "your_type",
                                "index": "your_index",
                                "path": "shape"
                            },
                            "relation": "intersects"
                        }
                    }
                }
        }
    }
}

此查询将 return 所有具有 your_shape_field 的文档与 ID 为 1 的文档中的 shape 字段相交。