首页 > 解决方案 > 如何将值附加到elasticsearch java api中的数组

问题描述

我有一个 ES 文档,其中也包含一个数组

{"uuid":"123","userList":["1","2"]}

我想更新 userList 数组并添加另一个像“3”这样的元素elasticsearch 1.6我做了这样的事情并且它有效

client.prepareUpdate(indexName, typename, uuid)
            .setScript("ctx._source.userList += '" + value + "'", ScriptService.ScriptType.INLINE))

但现在我升级到 elasticsearch 7.1,现在我正在尝试它做这样的事情,但我没有让它工作

val updateRequest = new UpdateRequest(ARTGROUP_INDEX_NAME,artGroupUuid)
val fieldName = new Script(ScriptType.INLINE,"painless", "ctx._source.userList",scala.collection.mutable.Map(fieldNameStr -> value))
          updateRequest.script(fieldName)

这里的值类型Any不是object

type mismatch;
[error]  found   : Map[String,Any]    (in scala.collection.mutable) 
[error]  required: Map[String,Object] (in java.util) 

我怎么能在这里使用它也可以这样工作吗?

标签: javascalaelasticsearch

解决方案


推荐阅读