2017-03-07 10 views
0

Multi Search APIelasticsearchを使用しようとしています。複数検索ElasticSearchが正しく動作しない

マイrequestsファイルは以下のようになります。

$ cat requests 
{"index" : "indexA"} 
{"query" : {"match_all" : {}}, "from" : 0, "size" : 2} 
{"index" : "indexB"} 
{"query" : {"match_all" : {}}, "from" : 0, "size" : 2} 

そして、私はcurl request次使用しています:

curl -XGET localhost:9200/_msearch --data-binary @requests 

この要求を使用して、私はindexAからresponse array内のコンテンツを取得します。 indexBの内容は完全に無視されます。私はここで間違って何をしていますか?

+0

最後の行の後に改行文字を追加してください。 – Val

+0

私は '\ n'を各行の後ろに直接置いてみました。しかし、それは動作しません。私はそれを正しくしていますか? – oblivion

+1

'cat requests'を実行するときは、最後の行の後に新しい行を追加してからCtrl + Cを押します。 – Val

答えて

1

catリクエストを実行するときは、最後の行の後にCtrl + Cだけを入力してください。

$ cat requests 
{"index" : "indexA"} 
{"query" : {"match_all" : {}}, "from" : 0, "size" : 2} 
{"index" : "indexB"} 
{"query" : {"match_all" : {}}, "from" : 0, "size" : 2} 
      <--- add a new line here 

次に動作します。

+0

あなたの答えをありがとう。私の 'application' *(任意のHTTPライブラリを使用して)*から' multi-search api'にアクセスする必要がある場合、いつも**ファイルを作成し**そこにjsonクエリを書く必要がありますか?または、クエリを含む 'json配列 'を作成し、そのjsonボディをElasticSearch APIに直接投稿することができます。アプリケーション内からのマルチ検索を使用するための「正しい方法」を知りたいだけです。 – oblivion

+0

使用しているクライアントライブラリによって異なりますが、クエリを送信する前にファイルを作成する必要はありません。 – Val

+0

私が使用しているクライアントライブラリは、文字列の本文をサポートしています。 Jsonも文字列に変換して渡すことができます。だから私はそれらの間に新しい行の文字列を持つ文字列としてjsonsを追加できますか? – oblivion

関連する問題