Itamar, I'm using the Java driver and was hoping that UpdateResponse will have some kind of status but looks like it doesn't.
On Wednesday, October 1, 2014 3:01:02 PM UTC+3, Itamar Syn-Hershko wrote: > > HTTP status codes are used to communicate errors, for example a runtime > error would return HTTP status 500 > > -- > > Itamar Syn-Hershko > http://code972.com | @synhershko <https://twitter.com/synhershko> > Freelance Developer & Consultant > Author of RavenDB in Action <http://manning.com/synhershko/> > > On Wed, Oct 1, 2014 at 2:59 PM, Aviv Eyal <[email protected] > <javascript:>> 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] <javascript:>. >> 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/666ecbbd-8119-42e8-b04e-98b69d0d437c%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
