如何通过Java API使用脚本更新elsaticsearch文档中的一个?

问题描述 投票:0回答:1

我想更新一个在elasticSearch中提交的文件。我有文档的ID和新值。我不知道该怎么写脚本。我该如何提及文件编号?我写如下,但不起作用。 studentId是应更改的字段,结果是新值

            UpdateResponse response = dataTransportClient.prepareUpdate(
            AppSettings.ELASTIC_SERVICE_NAME,
            AppSettings.ELASTIC_DB_NAME,
            studentId)
            .setScript(
                    new Script(
                            ScriptType.INLINE,
                            "painless",
                            "ctx._source.studentId="+result,
                             Collections.emptyMap()
                    )
            )
            .setRefreshPolicy(WriteRequest.RefreshPolicy.NONE)
            .get();
java elasticsearch elasticsearch-5
1个回答
0
投票

我通过如下更改解决了我的问题:

        UpdateResponse response = dataTransportClient.prepareUpdate(
        AppSettings.ELASTIC_SERVICE_NAME,
        AppSettings.ELASTIC_DB_NAME,
        studentId)
           .setScript(
                new Script(
                        ScriptType.INLINE,
                        "painless",
                        "ctx._source.response =" + (JsonUtil.getJson(result)),
                         Collections.emptyMap()
                          )
                     )
        .setRefreshPolicy(WriteRequest.RefreshPolicy.NONE)
        .get();
© www.soinside.com 2019 - 2024. All rights reserved.