ElasticSearch查询引用文档

时间:2014-03-17 00:44:00

标签: elasticsearch

我前段时间读过,有一种方法可以构建一个引用索引中另一个文档的查询。当时,这对我没什么帮助,但我现在有了非常大的GIS区域,我需要查询并在每次看起来都很浪费时将这些数据发送到查询体中的ElasticSearch。

虽然我的具体用例与GIS geo_shape等相关,但它是一个可以应用于其他类型查询的常见问题。

我有一个文档类型areas,其中包含所有预定义的搜索区域(如郊区,州等)和entities,其中包含所有搜索数据,包括{entities 3}}带lat / lon的字段。

我需要能够为mpoly文档构建geo_point type areas文档,这些文档引用{{1}}文档上的{{1}}属性(geo_shape query)因为它的形状坐标。

不幸的是,谷歌和阅读ElasticSearch文档在这种情况下都没有被证明是有用的,因为通常嵌套的文档(相关的,但不是我正在寻找的)是人们似乎更感兴趣的东西。

1 个答案:

答案 0 :(得分:0)

在寻找不同的东西时,我终于找到了答案。很遗憾,有关GeoShape过滤器的信息不在GeoShape查询手册页中:

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-geo-shape-filter.html#_pre_indexed_shape

{
    "filtered": {
        "query": {
            "match_all": {}
        },
        "filter": {
            "geo_shape": {
                "location": {
                    "indexed_shape": {
                        "id": "DEU",
                        "type": "countries",
                        "index": "shapes",
                        "path": "location"
                    }
                }
            }
        }
    }
}

如果有人知道如何更好地执行此操作,我将很乐意接受他们的回答。