首页 > 解决方案 > 将具有多个条件的 elasticsearch DSL 查询转换为 URI 搜索

问题描述

当我在 Kibana Dev 控制台上运行以下 Elasticsearch DSL 查询时,它会正确返回结果,我试图通过基于 URI 的查询运行相同的查询,因为 HTTP URL 不起作用。我已经尝试在 doc 上进行搜索并且很好,但没有获得将此查询构建为基于 HTTP 的 GET url 的确切方法。

GET _search
{
  "size": 100,
  "_source": [
    "fieldname1",
    "fieldname2"
  ],
  "query": {
    "bool": {
      "must": {
        "exists": {
          "field": "fieldname2"
        }
      },
      "must_not": {
        "match": {
          "fieldname2": "*IGNORE*"
        }
      }
    }
  }
}

请提供任何提示。

标签: elasticsearch

解决方案


上面的URI Search格式的查询可以写成:

GET /_search?q=_exists_:fieldname2 AND !fieldname2:"*IGNORE*"&_source=fieldname1,fieldname2&size=100

URI 中的参数q映射到query_string查询。


推荐阅读