使用Chrome Head更新Elasticsearch文档报错,求排查方案
问题原因及修正方案
出现Unknown key for a START_OBJECT in [script]错误,主要是以下两个常见疏漏导致:
1. 脚本字段名不匹配Elasticsearch版本
如果你的Elasticsearch版本是5.x及更早,内联脚本的内容需要用inline字段而非source。旧版本ES不识别source这个键,因此会抛出该错误。
修正后的请求体:
{ "query": { "bool": { "must": [ { "match": { "documentId": "cb2d622f-d997-41c6-96ec-505d6fe656b5" } } ] } }, "script": { "lang": "painless", "inline": "ctx._source.versionState = 1;" } }
2. API端点使用错误
你的请求包含query条件,说明是要批量匹配文档并更新,此时必须使用_update_by_query API端点(请求地址示例:POST /你的索引名/_update_by_query)。如果误用了单个文档的_update端点(如POST /你的索引名/_doc/文档ID/_update),不仅query字段无效,还可能引发脚本解析异常。
额外检查:确保请求使用POST方法,且Elasticsearch已启用内联脚本(Painless脚本默认允许,无需额外配置)。
内容的提问来源于stack exchange,提问作者DanielV
相关产品推荐
相关产品推荐

