curl -X POST http://localhost:9200/blog/article/1/_update?pretty -d '{"script": {"inline": "ctx._source.content = \"new content\""}}'を実行して
{のようなエラーが返ってくるとき、elasticsearch.ymlに設定が必要になる。
"error" : {
"root_cause" : [ {
"type" : "remote_transport_exception",
"reason" : "[Artie][127.0.0.1:9300][indices:data/write/update[s]]"
} ],
"type" : "illegal_argument_exception",
"reason" : "failed to execute script",
"caused_by" : {
"type" : "script_exception",
"reason" : "scripts of type [inline], operation [update] and lang [groovy] are disabled"
}
},
"status" : 400
}
/etc/elasticsearch/elasticsearch.yml とかにあるファイルを開いて
script.inline: onを書けば良い。
ググったら↓こう書けと出てくるページもあるが、2.0系では有効ではない。
script.engine.groovy.inline.aggs: on
script.groovy.sandbox.enabled: true
参考
http://stackoverflow.com/questions/25291927/how-to-run-update-elasticsearch-with-external-script
http://t-cyrill.hatenablog.jp/entry/2014/04/19/161422
0 件のコメント:
コメントを投稿