解决Caused by: ScriptException[scripts of type [inline], operation [update] and lang [groovy] are disabled
因为需要使用script对文档进行update,因此需要在elasticsearch的安装目录中修改elasticsearch.yml($ES_HOME/config/elasticsearch.yml)配置文件,允许使用script修改文档,在配置文件elasticsearch.yml中添加如下内容:
script.inline: true
script.indexed: true
之后介绍如何删除文档中的属性,其中index、type、id、name_of_field四个字段需要按自己的需求进行修改:
方法一:使用curl
curl -XPOST 'localhost:9200/index/type/id/_update' -d '{
"script" : "ctx._source.remove(\"name_of_field\")"
}'
方法二:使用JAVA
client.prepareUpdate("index", "type", "id").setScript(new Script("ctx._source.remove(\"name_of_field\")", ScriptService.ScriptType.INLINE, null, null)).get();