Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Return document on update elasticsearch

Lets say I'm updating user data

curl -XPOST 'localhost:9200/test/type1/1/_update' -d '{
    "doc" : {
        "name" : "new_name"
    },
    "fields": ["_source"]
}'

Heres an example of what I'm getting back when I perform an update

{
  "_index" : "test",
  "_type" : "type1",
  "_id" : "1",
  "_version" : 4
}

How do I perform an update that returns the given document post update?

like image 967
lfender6445 Avatar asked Jun 18 '26 14:06

lfender6445


1 Answers

The documentation is a little misleading with regards to returning fields when performing an Elasticsearch update. It actually uses the same approach that the Index api uses, passing the parameter on the url, not as a field in the update.

In your case you would submit:

curl -XPOST 'localhost:9200/test/type1/1/_update?fields=_source' -d '{
    "doc" : {
        "name" : "new_name"
    }
}'

In my testing in Elasticsearch 1.2.1 it returns something like this:

{
  "_index":"test",
  "_type":"testtype",
  "_id":"1","_version":9,
  "get": {
    "found":true,
    "_source": {
        "user":"john",
        "body":"testing update and return fields",
        "name":"new_name"
      }
   }
}

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-index_.html http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-update.html

like image 86
John Petrone Avatar answered Jun 21 '26 22:06

John Petrone



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!