Elasticsearch:查询字符串中的多个条件

时间:2015-03-17 09:40:53

标签: elasticsearch

我正在使用以下JSON在搜索查询中应用多个条件。

GET my_index/my_type/_search
{
  "query": {
    "filtered": {
      "query": {
        "query_string": {
          "default_field : "andi_new"
          "query": "network:onenetwork AND publisher:someplublisher"
        }
      },
      "filter": {
        "range": {
          "time": {
            "gte": "2015-03-12 00:00:00",
            "lte": "2015-03-12 23:59:59"
          }
        }
      }
    }
  }
}

我根据PHP Web应用程序中的下拉列表选择过滤器值。因此,所有过滤器都不会应用一次。

如果我在问题字符串查询中只有条件,一切正常。此外,如果我包括OR,那么它也在工作。但是当我添加'AND'并提供如上所示的另一个列条件时,它无效。是否有其他过滤器用于应用不同的条件?

1 个答案:

答案 0 :(得分:0)

您错过了default_field后的结束双重引号和该行末尾的逗号。请尝试以下查询:

{
  "query": {
    "filtered": {
      "query": {
        "query_string": {
          "default_field" : "andi_new",
          "query": "network:onenetwork AND publisher:someplublisher"
        }
      },
      "filter": {
        "range": {
          "time": {
            "gte": "2015-03-12 00:00:00",
            "lte": "2015-03-12 23:59:59"
          }
        }
      }
    }
  }
}