2016-11-09 13 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.0を使用しています。

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

私はmulti_matchクエリで間違っているものを理解していません。

+0

または['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_stringまたはmulti_matchのいずれかを使用できますが、どちらも使用できません。あなたは[ `multi_match`](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-multi-match-query.html)クエリを持つことができるのいずれか

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