Update Index


(andavar) #1

Dear Elastic Search User,

I come to know there is an <b>UpdateRequest is availble in ES version0.19.0</b>, and i can use it like 

UpdateRequest updateRequest = new UpdateRequest(indexName,indexType,indexId);
client.update(updateRequest);
and I am not sure how to pass the updated source to do updateIndex.

so far I am doing update index by the below steps in ES version 0.18.7 by

  1. GetRequest getRequest = new GetRequest(indexName,indexType, indexId);
  2. GetResponse response = client.get(getRequest).get();
    //document already existing in the elastic search engine
    3 .Map<String, Object> responseSourceMap = response.getSource();
  3. responseSourceMap .put(document to update);
  4. create a indexrequest with source as responseSourceMap
  5. client.index(indexRequest);

I have a question of what is the advantage of using client.update(updateRequest) instead of client.index(indexRequest) and how to use properly client.update(updateRequest)?
Please share your thoughts.


(Igor Motov) #2

Update API allows you to change records on the server using a script
without need to pull a record to the client, modify it and send it back to
the server. Update API also uses versioning to ensure update consistency.
So, in your examples operations 1-6 are done on the server including
operation 4 that is specified as a script and runs on the elasticsearch
server as well. See documentation
http://www.elasticsearch.org/guide/reference/api/update.html and
discussion here https://github.com/elasticsearch/elasticsearch/issues/1583
for more information.

On Tuesday, April 24, 2012 7:26:32 AM UTC-4, Periyandavar wrote:

Dear Elastic Search User,

I come to know there is an *UpdateRequest is availble in ES

version0.19.0*, and i can use it like
UpdateRequest updateRequest = new
UpdateRequest(indexName,indexType,indexId);
client.update(updateRequest);
and I am not sure how to pass the updated source to do updateIndex.

so far I am doing update index by the below steps in* ES version 0.18.7* by

  1. GetRequest getRequest = new GetRequest(indexName,indexType, indexId);
  2. GetResponse response = client.get(getRequest).get();
    //document already existing in the elastic search engine
    3 .Map<String, Object> responseSourceMap = response.getSource();
  3. responseSourceMap .put(document to update);
  4. create a indexrequest with source as responseSourceMap
  5. client.index(indexRequest);

I have a question of what is the advantage of using
client.update(updateRequest) instead of client.index(indexRequest) and
how to use properly client.update(updateRequest)?
Please share your thoughts.

--
View this message in context:
http://elasticsearch-users.115913.n3.nabble.com/Update-Index-tp3935060p3935060.html
Sent from the ElasticSearch Users mailing list archive at Nabble.com.


(andavar) #3

Thank you very much Igor Motov..


(system) #4