python - Simple update field in elasticsearch -
i started using elsaticsearch , sense few weeks ago. need bulk update string field in documents of index follows: if string starts "+", update field same value without "+".
old: number: "+212112233" new: number: "212112233"
is there simple way me rest dsl or need use python?
thanks!
if can install update-by-query plugin, there's way it. plugin works giving query matching documents update , script update matching documents.
curl -xpost localhost:9200/your_index/your_type/_update_by_query -d ' {   "query": {     "filtered": {       "filter": {         "script": {           "script": "_source[\"your_field\"].indexof(\"+\") == 0"         }       }     }   },   "script": "ctx._source.your_field = ctx._source.your_field.substring(1);" }'   note: replace your_index, your_type , your_field respectively index, type , field name.
so, tell plugin update documents containing your_field value starts + (not knowing if your_field analyzed string or not, here directly _source make sure check raw string value indexed) , tell script update each matching document taking substring of value leaving out + sign.
Comments
Post a Comment