2016-11-09 115 views
0

我在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 
} 

山口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查询。

+0

您可以有一个['multi_match'(https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-multi-match-query.html)查询或['query_string'](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html)查询,但不能混用两者。 – Val

+0

谢谢,这是问题所在。如果您将其添加为答案,我会将其标记为已解决。 @vinod_vh给出了相同的答案,如果你不介意的话,我可以接受。 –

+0

随时接受@vinod_vh答案;-) – Val

回答

0

请尝试以下查询。您可以使用无法使用的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" 
     } 
    } 
}