修复 ElasticSearch 'no [query] registered for [query]'

问题:

你想在 ElasticSearch 中运行查询,但你收到类似这样的错误消息

elasticsearch_no_query_registered.txt
elasticsearch.exceptions.RequestError: RequestError(400, 'parsing_exception', 'no [query] registered for [query]')

解决方案

在你的查询体中,有两个 "query" 对象相互嵌套。删除外部的 "query",只保留内部的。

示例:

不正确:

es_query_incorrect.json
{
    "query": {
        "query": {
            "match": {
                "my_field": "my_value"
            }
        }
    }
}

正确:

es_query_correct.json
{
    "query": {
        "match": {
            "my_field": "my_value"
        }
    }
}

Check out similar posts by category: Databases, ElasticSearch