弹性搜索查询的未知令牌错误

时间:2016-11-09 14:18:20

标签: elasticsearch

我在ES索引中创建了一个文档。我需要运行搜索查询。

这是我的搜索有效负载。

{
"highlight": {
    "require_field_match": true,
    "pre_tags": [
        "<span class=\"searchKeyHighlight\">"
    ],
    "post_tags": [
        "</span>"
    ],
    "fields": {}
},
"query": {
    "query_string": {
        "multi_match": {
            "default_operator": "AND",
            "query": "xyz"
        }
    }
}
}

这是我得到的错误。

{
"error": {
    "root_cause": [
        {
            "type": "parsing_exception",
            "reason": "[query_string] unknown token [START_OBJECT] after [multi_match]",
            "line": 1,
            "col": 170
        }
    ],
    "type": "parsing_exception",
    "reason": "[query_string] unknown token [START_OBJECT] after [multi_match]",
    "line": 1,
    "col": 170
},
"status": 400
}

col 170是搜索查询"multi_match":{"default_operator"中multi_match之后的冒号。

我使用的是elasticsearch版本5.0.0。

Version: 5.0.0, Build: 253032b/2016-10-26T04:37:51.531Z, JVM: 1.8.0_102

我不明白multi_match查询中的错误。

1 个答案:

答案 0 :(得分:1)

尝试以下查询。你可以使用query_stringmulti_match

{
"highlight": {
    "require_field_match": true,
    "pre_tags": [
        "<span class=\"searchKeyHighlight\">"
    ],
    "post_tags": [
        "</span>"
    ],
    "fields": {}
},
"query": {
    "query_string": {
            "default_operator": "AND",
            "query": "xyz"
         }
     }
}