在一个请求中(地理上)查找附近的所有文档

时间:2018-06-22 15:11:19

标签: elasticsearch geospatial

我有多个包含地理位置的文档。我想查询一下所有位置在另一个文档(A)的给定距离以下的文档(比如B,C,D)。 我所有的文档都具有“类型”:“ geo_point”的位置,并且可以使用该过滤器找到给定点附近的所有对象:

        "filter" : {
            "geo_distance" : {
                "distance" : "{{radius}}",
                "location" : {
                    "lat" : "{{lat}}",
                    "lon" : "{{lon}}"

但是,要获得我的请求中的延迟,我需要先发出请求,请求文件A的坐标,然后将其放入第二个请求中。

是否有一个查询(本着terms query的精神)可以让我做这样的事情?

        "filter" : {
            "geo_distance" : {
                "distance" : "{{radius}}",
                "location" : {
                           terms:{ "id" : "A", "path" : "location"}

除了避免一次往返之外,它还可以确保一切都连贯完成,而且我不必在lat,lon中手动解析geopoint。

预先感谢

0 个答案:

没有答案