Elasticsearch Jest更新整个文档

时间:2015-05-13 18:43:03

标签: elasticsearch jest

我有一个弹性搜索服务器,我正在使用Jest客户端通过java服务器访问,我正在寻找每次更新文档的多个字段的最佳方法。

到目前为止,我已查看过文档,我发现有两种方法可以实现:

  1. Partial update via a script:我认为它不适合多字段更新(因为我不知道修改后的字段)。
  2. Whole document update:通过重新索引整个文档。
  3. 我的问题是如何知道Jest只通过脚本提供更新来更新整个文档?

    这是删除文档和索引更新版本的最佳方法吗?

    提前致谢,

1 个答案:

答案 0 :(得分:4)

在github问题中已经回答了这个问题,你又开了一次:

您应该使用链接的第二种方式(整个文档更新),并且没有特殊的API,它只是一个常规的索引请求。因此,您只需针对要更新的文档的Index发送id请求即可。

例如,假设您已在索引people内的Elasticsearch中编入索引以下文档,请键入food,id 9

{"user": "kramer", "fav_food": "jello"}

然后你会这样做:

String source = "{\"user\": \"kramer\", \"fav_food\": \"pizza\"}";
JestResult result = client.execute(
            new Index.Builder(source)
                    .index("people")
                    .type("food")
                    .id(9)
                    .build()
    );