# elasticsearch-partialupdate **Repository Path**: mirrors_medcl/elasticsearch-partialupdate ## Basic Information - **Project Name**: elasticsearch-partialupdate - **Description**: an elasticsearch plugin that allows to update a specify fileds of a document,avoid full reindex and reduce traffic costs - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-09 - **Last Updated**: 2026-07-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README h1. ElasticSearch PartialUpdate Plugin NOTE elasticsearch 0.19 already implemented a update action,check it out: http://www.elasticsearch.org/guide/reference/api/update.html //version:1.0.0 is for es0.16.2, //version 1.1.1 is for es0.19.4 //version 1.2.0 is for es0.90.2 //version 1.2.2 is for es1.0.0 //changelog: //2012-07-08 change all rest interface "_update" to "_partial_update".(breaking change!) //2014.2.26 array merge support h2. Update your index on-demand. h3. how to build this plugin? ** specify elasticsearch version by edit pom.xml,you can specify the elasticsearch version you are using.
...
1.0.0
...
** maven build
mvn clean
mvn package
** install the plugin *** compiled jar files can be found from the RTF project: https://github.com/medcl/elasticsearch-rtf/tree/master/elasticsearch/plugins/partial_update *** drop the jar file to your elasticsearch plugin folder: elasticsearch/plugin/es-partial-update/ ** versions |partial update Plugin|ElasticSearch| | master|1.0.0 -> master| | 1.2.2|1.0.0| | 1.2.1|0.90.2| | 1.1.1|0.19.4| | 1.1.0|0.19.0| | 1.0.0|0.18.x| h3. how to play with this plugin? ** first,let's index a document
curl -XDELETE http://localhost:9200/index/type1/1/
curl -XPOST http://localhost:9200/index/type1/1/ -d'{"name":"medcl","blog":"http://log.medcl.net"}'

{"ok":true,"_index":"index","_type":"type1","_id":"1","_version":1}
** now let's get it
curl -XGET http://localhost:9200/index/type1/1/

{"_index":"index","_type":"type1","_id":"1","_version":1, "_source" : {"name":"medcl","blog":"http://log.medcl.net"}}
** ok,let's update it,update a filed(name),and add a new filed(time)
curl -XPOST http://localhost:9200/index/type1/1/_partial_update -d'{"name":"medcl?","time":"2011-1-1"}'

{"ok":true,"_index":"index","_type":"type1","_id":"1","_version":2}
** let's get the document again,and you can see,the document is already changed.
curl -XGET http://localhost:9200/index/type1/1/

{"_index":"index","_type":"type1","_id":"1","_version":2, "_source" : {"time":"2011-1-1","name":"medcl?","blog":"http://log.medcl.net"}}
h3. how to play with array merge? ** add a new tag,data type is array
curl -XPOST http://localhost:9200/index/type1/1/_partial_update -d'{"tag":["test"]}'
** now check it
curl -XGET http://localhost:9200/index/type1/1/

{"_index":"index","_type":"type1","_id":"1","_version":39,"exists":true, "_source" : {"blog":"http://log.medcl.net","name":"medcl?","tag":["test"],"time":"2011-1-1"}}
** update the tag field,add new tag `movie`
curl -XPOST http://localhost:9200/index/type1/1/_partial_update/append -d'{"tag":["movie"]}'
** now check it again
curl -XGET http://localhost:9200/index/type1/1/

{"_index":"index","_type":"type1","_id":"1","_version":40,"exists":true, "_source" : {"blog":"http://log.medcl.net","name":"medcl?","tag":["test","movie"],"time":"2011-1-1"}}
as you can see,movie is in. ** let's remove `test` from tag
curl -XPOST http://localhost:9200/index/type1/1/_partial_update/remove -d'{"tag":["test"]}'
** check it again.
curl -XGET http://localhost:9200/index/type1/1/

{"_index":"index","_type":"type1","_id":"1","_version":41,"exists":true, "_source" : {"blog":"http://log.medcl.net","name":"medcl?","tag":["movie"],"time":"2011-1-1"}}
have fun.