If you get an UpdateResponse from actionGet(), you can be sure ES has executed the action. Otherwise you will get an exception.
Jörg On Wed, Oct 1, 2014 at 1:59 PM, Aviv Eyal <[email protected]> wrote: > Jörg - thanks for the thoughtful reply. Rephrasing my question a bit: how > can the code be sure that an update request was at least submitted to ES > without an error? Surely, an update request may fail due to various runtime > issues. > > On Wednesday, October 1, 2014 12:21:15 PM UTC+3, Aviv Eyal wrote: >> >> Hi, I'm new to elasticsearch so there might be an obvious answer to this >> question. >> >> What's the best way to check the status of an update operation that >> changed the value of an existing property? >> I'm using a doc to update an existing indexed document using the java >> update api: >> >> UpdateResponse updateResponse = client.prepareUpdate("content", >> "contentitem", item.id) >> .setDoc(xb).execute().actionGet(); >> >> updateResponse.isCreated() only returns true if the doc was inserted >> using an upsert operation and updateResponse.getGetResult() returns null >> null. >> >> I've looked in the ES tests source code and the way the test is performed >> there is by issuing a new get request for the updated fields and comparing >> the values from ES with the values set in the update: >> >> // change existing field >> updateResponse = client().prepareUpdate(indexOrAlias(), "type1", >> "1").setDoc(XContentFactory.jsonBuilder().startObject().field("field", >> 3).endObject()).execute().actionGet(); >> for (int i = 0; i < 5; i++) { >> getResponse = client().prepareGet("test", "type1", >> "1").execute().actionGet(); >> assertThat(getResponse.getSourceAsMap().get("field").toString(), >> equalTo("3")); >> assertThat(getResponse.getSourceAsMap().get("field2").toString(), >> equalTo("2")); >> } >> >> I'm curious if this can be done just by using UpdateResponse and without >> using another get. >> >> Thanks! >> >> >> >> -- > You received this message because you are subscribed to the Google Groups > "elasticsearch" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/elasticsearch/bcec4757-542a-4a28-b94c-71fb23d129b3%40googlegroups.com > <https://groups.google.com/d/msgid/elasticsearch/bcec4757-542a-4a28-b94c-71fb23d129b3%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/CAKdsXoGTiS3yKNGv6VU3uOas9h6pOR8SwH%2BfrVOkkMVNFnsP2Q%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
