1

是否可以选择使用 ElasticSearch 中的一个查询来执行搜索,如下所示:

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

?

4

1 回答 1

1

是的,您可以为此目的使用预先索引的形状。

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"
                        }
                    }
                }
        }
    }
}

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

于 2017-02-15T12:31:29.793 回答