日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ES使用脚本进行局部更新的排错记录

發布時間:2024/4/17 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ES使用脚本进行局部更新的排错记录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

初學Elasticsearch,在按照《Elasticsearch服務器開發(第2版)》進行學習的過程中,在P17頁中1.4.5 更新文檔小節,使用腳本對文檔進行局部更新的時候遇到了如下報錯:

??~?curl?-XPOST?http://127.0.0.1:9200/blog/article/1/_update?-d?'{"script":?"ctx._source.content=\"new?content\""}' {"error":{"root_cause":[{"type":"remote_transport_exception","reason":"[Lady?Mandarin][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 }%

我根據提示中的原因"scripts of type [inline], operation [update] and lang [groovy] are disabled"進行了查詢,查到了官網文檔關于對腳本更新的介紹(介紹鏈接)。

通過粗略查看文檔,我發現要解決這個問題,需要在Elasticsearch的配置文件elasticsearch.yml中添加如下配置:

script.engine.groovy.inline.update: on

由于Elasticsearch默認使用的是Groovy語言。Groovy語言一個快速且功能豐富的腳本語言,語法類似于Javascript。它在一個沙盒(sandbox)中運行,以防止惡意用戶毀壞Elasticsearch或***服務器。
由于默認Elasticsearch沒有打開Groovy的update權限,因此我們無法通過Groovy進行更新操作,通過上述配置打開權限之后,就可以進行更新操作了。

?~?curl?-XPOST?http://127.0.0.1:9200/blog/article/1/_update?-d?'{"script":?"ctx._source.content=\"new?content\""}' {"_index":"blog","_type":"article","_id":"1","_version":2,"_shards":{"total":2,"successful":1,"failed":0} }%


總結

以上是生活随笔為你收集整理的ES使用脚本进行局部更新的排错记录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。