2017-07-27 7 views
0

ElasticSearch 5.4.1 Java API:正しいアップデートですが、updateResponse.getResult()がnullの場合、オブジェクトを検査し、レス()= null、ElasticSearch 5.4.1 Java API:updateResponse.getResult()のエラーがnull、

つまり、結果は良好ですがアクセスできます。ここに私のコードです:とにかく

UpdateResponse response = esClient.prepareUpdate(INDEX, TYPE, id).setDoc(jsonPoste).get(); 

enter image description here

+0

はあなたがUpdateRequestを構築し、あなたのコードを投稿することができます:トリックを行う必要がありますあなたの要求に.setFetchSource(true)を追加するとにかく

、?あなたはおそらく 'fetchSource'または 'fields'宣言がないでしょうか?更新要求が明示的に要求されていないデータを返さないということは私には意味があります。それをロードするために不要なオーバーヘッドになるでしょう。 – Slomo

答えて

1

もう少し古いですが、ESフォーラムにはthisという記事があります。

結果を取得する場合は、明らかにリクエストで指定する必要があります。さもなければ、updateRequestはちょうど更新し、結果として 'UPDATED'(または他のコード)を返します。最初の考えでは、ハードドライブから不必要な/要求されていないデータをロードする理由があります。

UpdateResponse response = esClient.prepareUpdate(INDEX, TYPE, id) 
          .setDoc(jsonPoste).setFetchSource(true).get(); 
0

私はあなたを助けたいが、私はあまり評判を持っていないので、私はコメントを書くことができない...

、私が見つかりました。 "UpdateResponse"クラスファイルに関連する1つのドキュメントとソース。

[上部githubのからコピーされたコード]

  • UpdateResponse updateResponse =新しいUpdateResponse(新しいReplicationResponse.ShardInfo(3、2)、
  • 新しいShardId( "books"、 "books_uuid"、2 )、 "ブック"、 "1"、7,2、UPDATED)。
  • updateResponse.setGetResult(新しいGetResult( "books"、 "book"、 "1"、2、true、source、fields)); +
  • 文字列出力= Strings.toString(updateResponse);
  • assertEquals( "{\" _索引\ ":\"書籍\ "、\"タイプ\ ":\"本\ "、\" ID \ "、\" 1 \ "、\" _バージョン\ \ "結果\":\ "更新\"、 "+
  • " \ "合計\":3 \ "成功\":2 \ "失敗\":0} "\"タイトル\ ":\"書籍タイトル\ "、\" _ seq_no \ ":7、\"取得\ ":真、" +
  • " \ "ABC-123 \"}、\ "フィールド\":\ "isbn \":\ "isbn \":
  • "title \"]}}} ""、出力);

テスト用のコードがいくつかありますので、このテストコードを使用してコードをテストできると思います。 "getResult()"メソッドを使う前に "toSting()"メソッドを使うことをお勧めします。何が間違っているのかを簡単に見つけることができます。

良い一日を!

関連する問題