错误:[bool]查询不支持[term]

时间:2016-06-28 16:52:21

标签: elasticsearch

我使用的是Elasticsearch版本2.3.2。我试图在布尔查询上使用过滤器,但我收到一个错误:

"type": "query_parsing_exception",
            "reason": "[bool] query does not support [term]",

我的弹性搜索查询是:

GET index_name/_search
{
  "query": {
    "bool": {
      "must": [
        {"match": {
          "title": "white"
        }},
        {
          "match": {
            "newContent": "white"
          }
        }
      ],
      "filter": {
        "term": {
          "default_collection": "true"
        }
      }
      ,"term":{
        "wiki_collection": "true"
      }
    }
  }
}

我不确定问题是什么。我可能会遗漏一些东西

1 个答案:

答案 0 :(得分:6)

您需要在term数组中移动filter个过滤器(并在发送有效内容时使用POST而不是GET):

POST index_name/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "title": "white"
          }
        },
        {
          "match": {
            "newContent": "white"
          }
        }
      ],
      "filter": [
        {
          "term": {
            "default_collection": "true"
          }
        },
        {
          "term": {
            "wiki_collection": "true"
          }
        }
      ]
    }
  }
}