我正尝试使用轻松的脚本将新的数组字段添加到文档中,但是失败了。
这是要更新的文档
"_source": {
"a": {}
}
我想在a下添加一个新数组b。所以我有这个脚本
{
"script": {
"source": "ctx._source.a.b=[params.id]",
"lang": "painless",
"params": {
"id": "id001"
}
}
}
但是我遇到了错误
{
"status": 400,
"error": {
"root_cause": [
{
"reason": "object mapping for [a.b] tried to parse field [null] as object, but found a concrete value",
"type": "mapper_parsing_exception"
}
],
"type": "mapper_parsing_exception",
"reason": "object mapping for [a.b] tried to parse field [null] as object, but found a concrete value"
}
}
我试图通过创建一个空数组
"ctx._source.a.b=new ArrayList()"
然后将元素附加到数组
"ctx._source.a.b.add(params.id)"
仍然出现相同的错误
有人可以帮助我指出问题所在吗? 非常感谢。
答案 0 :(得分:0)
找到了根本原因。 a.b是在索引映射中定义的,因为我之前已经定义了它。认为该字段已从文档中删除了。