如何搜索不在特定地理区域内的文档?

时间:2019-08-22 08:52:40

标签: elasticsearch

我找不到有关如何搜索不在特定地理区域内的文档的任何信息。

例如,如果我想在GPS点(40,-70)周围200公里的范围内搜索文档,则只需这样做:

{
    "query": {
        "bool" : {
            "must" : {
                "match_all" : {}
            },
            "filter" : {
                "geo_distance" : {
                    "distance" : "200km",
                    "pin.location" : {
                        "lat" : 40,
                        "lon" : -70
                    }
                }
            }
        }
    }
}

但是,如果我要搜索在我的GPS点(40,-70)周围200公里范围内的不是的文档。我不知道该怎么做。

你能帮我吗? 谢谢

1 个答案:

答案 0 :(得分:0)

只需添加must_not这样的查询

GET /my_locations1/_search
{
  "query": {
    "bool": {
      "must_not": [
        {
          "geo_distance": {
            "distance": "200km",
            "pin.location": {
              "lat": 40,
              "lon": -70
            }
          }
        }
      ]
    }
  }
}

希望这会有所帮助!