【问题标题】:Elasticsearch Jest update a whole documentElasticsearch Jest 更新整个文档
【发布时间】:2015-07-25 05:11:36
【问题描述】:

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

到目前为止,我已经查看了文档,发现有两种方法:

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

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

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

【问题讨论】:

    标签: elasticsearch elasticsearch-jest


    【解决方案1】:

    已经在你打开的 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()
        );
    

    【讨论】:

    • 感谢您的回答。我想知道是否可以像索引时一样将对象作为源传递?
    • 是的,你可以; Builder 接受任何对象,只要 Gson 可以序列化它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-31
    • 2019-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多