Elasticsearch 5.6.3 通过script添加、删除数组元素,elasticsearch5.6.3
环境:Elasticsearch 5.6.3
需求描述:对ES文档中一个数组字段tags添加或者删除元素“3”,esIP代表Elasticsearch的IP,docid代表文档ID
方法:
1、添加数组元素
curl -XPOST 'http://esIP:9200/in_news/document/docid/_update' -d ' {"script":{"inline":"ctx._source.tags.add(params.tag)","params":{"tag":"3"}}}'2、删除数组元素 curl -XPOST 'http://esIP:9200/in_news/document/docid/_update' -d '
{"script":{"inline":"ctx._source.tags.remove(ctx._source.tags.indexOf(params.tag))","params":{"tag":"3"}}}
3、通过查询更新数组
curl -XPOST 'http://esIP:9200/in_news/document/_update_by_query' -d ' {"query":{"term":{"tags":"1"}},"script":{"inline":"ctx._source.tags.remove(ctx._source.tags.indexOf(params.tag))","params":{"tag":"1"}}}'
其中,add,remove都是Java中的java.util.ArrayList类的内置函数。
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。