Elasticsearch Jest 更新整个文档

标签 elasticsearch elasticsearch-jest

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

到目前为止,我已经查看了文档,发现有两种方法可以做到这一点:

  1. Partial update via a script : 我认为它不适合多字段更新(因为我不知道修改的字段)。
  2. Whole document update : 通过重新索引整个文档。

我的问题是知道 Jest 仅通过脚本提供更新,我如何更新整个文档?

删除文档并索引更新版本是最好的方法吗?

最佳答案

已经在你也打开的 github 问题中回答了这个问题,但又是:

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

例如,假设您已经在索引 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()
    );

关于Elasticsearch Jest 更新整个文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30222880/

相关文章:

Java Elasticsearch 数据库测试

elasticsearch - 部分和完整的短语匹配

C#嵌套 : How to index array of geo-poinst

elasticsearch - 在为大型数据建立索引时,如果我再次删除索引ElasticSearch并创建索引并为文档建立索引而不是给Index不存在

java - 无法使用 TERMS QUERY 从 ELASTIC SEARCH 查询字母数字字段

java - Mockito 无法模拟此类 JestClient

elasticsearch - 对附件类型内容进行 Elasticsearch 完全匹配搜索

elasticsearch - 避免在Elasticsearch上通过jdbc-river重建索引

elasticsearch - 无法间歇性连接到 Elastic Search

java - Jest 客户端/ElasticSearch 集群信息