0

我想使用关键字进行查询,并在查询的关键字内仅显示我周围 150 公里的帖子我下面的查询正在运行,但显示所有帖子

{
    "query": {
        "regexp": {
            "title": {
                "value": ".*h.*",
                "flags": "ALL",
                "max_determinized_states": 10000,
                "rewrite": "constant_score"
            }
        }
    },
     "sort": [{
        "date": {
            "order": "desc"
        }
    }]
}

但是当我添加如下过滤器查询时,我收到解析错误

"filter": {
              "geo_distance": {
                   "distance": "150km",
                        "location": {
                         "lat": \(latitude),
                         "lon": \(longitude)
                         }
                   }
          }

任何人都可以帮助请

4

1 回答 1

0

这是您应该使用的查询,它结合了regexp查询和geo_distance使用查询的bool/filter查询:

{
  "query": {
    "bool": {
      "filter": [
        {
          "geo_distance": {
            "distance": "150km",
            "location": {
               "lat": \(latitude),
               "lon": \(longitude)
            }
          }
        },
        {
          "regexp": {
            "title": {
              "value": ".*h.*",
              "flags": "ALL",
              "max_determinized_states": 10000,
              "rewrite": "constant_score"
            }
          }
        }
      ]
    }
  },
  "sort": [
    {
      "date": {
        "order": "desc"
      }
    }
  ]
}
于 2020-02-18T09:22:02.513 回答