首页 > 解决方案 > ElasticSearch 中 query_string 的 default_operator 引发错误

问题描述

我使用这个查询:

{
    "from": 0,
    "size": 10,
    "_source": {
        "exclude": ["Content"]
    },
    "query": {
        "query_string": {
            "query": "(Content:ربنا)",
            "default_operator": " AND "
        }
    },
    "highlight": {
        "pre_tags": ["<tag1>"],
        "post_tags": ["</tag1>"],
        "fields": {"*": {}}
    }
}

但得到错误:

{
    "error": {
        "root_cause": [
            {
                "type": "illegal_argument_exception",
                "reason": "No enum constant org.elasticsearch.index.query.Operator. AND "
            }
        ],
        "type": "illegal_argument_exception",
        "reason": "No enum constant org.elasticsearch.index.query.Operator. AND "
    },
    "status": 400
}

如何解决此错误?

标签: elasticsearch

解决方案


使用以下查询。您"default_operator"必须是AND(不带空格),而在您的查询中是" AND "(带空格)。因此错误。

{
    "from": 0,
    "size": 10,
    "_source": {
        "exclude": ["Content"]
    },
    "query": {
        "query_string": {
            "query": "(Content:ربنا)",
            "default_operator":"AND"         
        }
    },
    "highlight": {
        "pre_tags": ["<tag1>"],
        "post_tags": ["</tag1>"],
        "fields": {"*": {}}
    }
}

希望能帮助到你!


推荐阅读