0

我有以下 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查询的任何变化。

4

1 回答 1

1

您需要删除子句query内部。must您的查询需要如下所示

{
    "query": {
        "bool": {
            "filter": [{
                "bool": {
                    "must": {
                        "query_string": {
                            "query": "notsoimportant"
                        }
                    }
                }
            }]
        }
    }
}
于 2018-09-20T10:50:47.060 回答