python - 通过查询更新不起作用,弹性搜索python
问题描述
我有大约 2000 多个文件名为“Contact.txt”的文档,我正在尝试text: {class: 'contact'}
通过执行以下操作来修改一个为所有这些文件调用的字段:
q = {
"script": {
"inline": "ctx._source.text.class='contact'",
"lang": "painless"
},
"query": {
"match": {
"name": "Contact.txt"
},
}
}
try:
es.update_by_query(body=q, index='index_name')
except Exception as e:
print(e)
我的 try/catch 给了我错误:
TransportError(500, 'script_exception', 'runtime error')
解决方案
该text
字段在文档中不存在,因此更新脚本应如下所示:
{
"script": {
"source": "ctx._source['text'] = params.text",
"params": {
"text": {
"class": "contact"
}
},
"lang": "painless"
},
"query": {
"match": {
"name": "Contact.txt"
}
}
}
推荐阅读
- html - 为什么我的位置绝对框会从外部泄漏内容
- javascript - 如何编辑完成提示?
- rfid - 标签数据中的 EPC 位方向
- count - Laravel 8 - Lighthouse graphql - 带有所有嵌套评论和嵌套评论计数的线程评论
- javascript - 刷新和显示更新的数组后如何防止旧数组保持显示
- spring - Spring Security 过期 OAuth2.0 访问令牌未触发新的身份验证请求
- django - 将 Django/websocket/redis 项目部署到 heroku 的问题
- flutter - Flutter 与 Springboot 后端
- vue.js - 如何在 Nuxt 的 asyncData 中重定向
- php - 了解我的代码,令牌来自哪里?