ES 通过查询更新某个字段,Error 500 (Internal Server Error)

这篇具有很好参考价值的文章主要介绍了ES 通过查询更新某个字段,Error 500 (Internal Server Error)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题描述:

项目中通过查询ES中某个字段,并更新某个值的字段,当量比较大的时候报错:

upsert associated failed: elastic: Error 500 (Internal Server Error): Failed to compile inline script [ctx._source.pcap_filename = ] using lang [painless] [type=general_script_exception]

问题解析:

1. 通过查询某个字段并更新这条数据中某个值的时候,如果是通过Script的方式更新,需要先阅读ES的官方Script撰写界面:How to write scripts | Elasticsearch Guide [8.11] | Elastic

2. 我是使用硬编码的方式直接撰写的ES的script,我写的代码(Go),

script := "ctx._source.pcap_filename = '" + fileName + "'"

fileName 是一个变量,script 在编译的时候直接就硬编码,所以每一次更新的时候都要重新compile这个script,当量比较大的时候,就超过下面如图所示的限制了。ES的script是有次数限制的,当你触发先至的时候,就会报这个错误ES 通过查询更新某个字段,Error 500 (Internal Server Error),elasticsearch,大数据,搜索引擎

3. 问题解决方式:

通过官方script 介绍的方式,

script := "ctx._source.pcap_filename = params['fileName']"

通过上面的方式写,每次script都是一样的,但是params不一样,就不用es重新编译这个script,直接在script 中的cache中取出已经编译的script,替换param中的数据就可以了。

通过参数的方式进行传递,在go中

res, err := es.client.UpdateByQuery().Index(index).Query(match_query).
		Script(elastic.NewScript(script).Param("fileName", fileName)).Do(es.ctx)

使用上面的代码,查询、撰写script,并且设置参数fileName。

这样应该就不会报这个错误了。

其余参考网站:1. https://github.com/elastic/elasticsearch-net/issues/29612

2. https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-scripting.html

3. Understanding and fixing “too many script compilations” errors in Elasticsearch文章来源地址https://www.toymoban.com/news/detail-771553.html

到了这里,关于ES 通过查询更新某个字段,Error 500 (Internal Server Error)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • HTTP 500 Internal Server Error: 错误的解决方法

     创建openstack镜像的时候报错。HTTP 500 Internal Server Error: The server has either erred or is incapable of performing the requested operation 查看 cat /var/log/glance/api.log日志显示如下。 2022-02-13 11:18:53.201 5691 ERROR glance.common.wsgi     six.reraise(type(de_ref), de_ref) 2022-02-13 11:18:53.201 5691 ERROR glance.common.wsgi  

    2024年02月02日
    浏览(20)
  • 双层while嵌套循环导致 500internal server error

    双层while嵌套循环导致 500internal server error

    在编写从文本文件中提取有用信息的过程中,使用到了双层while嵌套循环(其实内循环就是8,9次数据处理,时间复杂度并不高,为O(n))。 奇怪现象:第一次进入内层while循环,函数会成功执行,但是不能正确退出,且浏览器页面不显示任何内容,只是一个劲儿地转圈圈,随

    2024年02月06日
    浏览(18)
  • [Python3]爬虫HTTP Error 500错误,报错信息:urllib.error.HTTPError: HTTP Error 500: INTERNAL SERVER ERROR

    [Python3]爬虫HTTP Error 500错误,报错信息:urllib.error.HTTPError: HTTP Error 500: INTERNAL SERVER ERROR

    之后报下面的错误: 发现报错代码: 修改代码: 运行成功: 爬到的数据:

    2024年02月16日
    浏览(14)
  • 并发请求gitlab接口报错500 Internal Server Error

    并发请求gitlab接口报错500 Internal Server Error

    Gitalb 14.9 由docker搭建,使用的数据库是内置的postgresql 近期发现自研系统在请求调用 gitlab 的 api 接口时,尤其是 并发请求同一资源 时, 我这里是并发创建subgroup这个资源 ,会得到500的报错,起初以为是自己研发的系统代码在处理过程中由于数据不准确导致的500错误,没有太

    2024年02月16日
    浏览(12)
  • 打开Jupyter notebook出现500:Internal Server Error的解决办法

    打开Jupyter notebook出现500:Internal Server Error的解决办法

    起因: 今天打开Jupyter notebook 打算进行数据分析的时候,突然出现这么大大的一个500命令: 于是在百度上一阵搜寻,得到的都是安装各种屌丝的包。 后面提示是说 mistune 包的版本不对。各种博客一阵分析对 mistune 的版本进行了限制。 有个偷懒的做法就是: 将你新创建的环境

    2024年02月12日
    浏览(11)
  • 报错解决:jupyter notebook打开显示500 : Internal Server Error

    报错解决:jupyter notebook打开显示500 : Internal Server Error

    jupyter notebook打开某一ipynb文件后显示报错: 500 : Internal Server Error 示意图如下: Terminal中的报错: 问题报错的原因在于nbconvert版本不匹配,导致不兼容,需要进行更新。 进入conda环境,输入以下指令: 注:一般上述代码即可解决问题,若 上述方法不可行 ,可尝试输入以下指

    2024年02月12日
    浏览(12)
  • There was an unexpected error (type=Internal Server Error, status=500).

    There was an unexpected error (type=Internal Server Error, status=500). org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: “class path resource [templates/main.html]”) 这个错误原因在于模板上的有些数据异常导致的: 问题描述 在开发springboot的时候,进行modelAndView 视图层

    2024年02月09日
    浏览(15)
  • nginx部署vue前端项目,访问报错500 Internal Server Error

    描述:当我配置好全部之后,通过 服务器 ip 地址访问,遇到报错信息: 500 Internal Server Error 。 情况说明 前提:我是通过Docker启动nginx容器,通过-v 绑定数据卷,将html文件和nginx.conf通过挂载的方式启动。 我将vue项目打包放在 html路径下。通过启动命令启动nginx容器,命令如下

    2024年02月07日
    浏览(14)
  • jupyter notebook可以打开,但无法打开.ipynb文件,报错500 : Internal Server Error

    jupyter notebook可以打开,但无法打开.ipynb文件,报错500 : Internal Server Error

    打开Anaconda Promt界面,进入自己的虚拟环境。 在命令行输入以下指令:

    2024年02月07日
    浏览(18)
  • 解决HTTP错误500.19 - internal server error -内部服务器错误的终极指南

    解决HTTP错误500.19 - internal server error -内部服务器错误的终极指南

    在开发和维护网络应用程序时,难免会遇到各种HTTP错误代码。其中,HTTP错误500.19 - 内部服务器错误可谓是最令人头痛的问题之一。当你的应用程序遇到这个错误时,它似乎就像一道墙壁,挡住了你前进的道路。但别担心,本篇技术博文将揭示解决这个问题的终极方案,让你

    2024年02月04日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包