升级到5.6后,过滤器中的Elasticsearch query_string失败

时间:2018-09-20 10:49:54

标签: elasticsearch

我有以下Elasticsearch查询(通常更大,但去除了导致问题的部分):

{
    "query": {
        "bool": {
            "filter": [{
                "bool": {
                    "must": {
                        "query": {
                            "query_string": {
                                "query": "notsoimportant"
                            }
                        }
                    }
                }
            }]
        }
    }
}

我们让它在ES 2.3.5中工作了几个月都没有问题。我们现在想升级到ES 5.6,但是现在此查询失败了:

"type": "parsing_exception",
"reason": "no [query] registered for [query]"

我很难在这里的文档中找到重大更改通知。有人可以a)指出文档中的更改,然后b)重写此查询以使其产生相同的结果吗?

ps:我发现不再filtered个查询,但是我发现合并在一起的query_stringfilter查询没有任何变化。

1 个答案:

答案 0 :(得分:1)

您需要删除query子句中的must。您的查询需要看起来像这样

{
    "query": {
        "bool": {
            "filter": [{
                "bool": {
                    "must": {
                        "query_string": {
                            "query": "notsoimportant"
                        }
                    }
                }
            }]
        }
    }
}