【问题标题】:how to incrementally update nested objects in elasticsearch?如何增量更新elasticsearch中的嵌套对象?
【发布时间】:2015-02-22 14:29:23
【问题描述】:

我有 2 种文档类型(关系数据库中的正常形式):

1:帖子(带有标题、文本和作者字段)

2:评论(带有文本、作者、post_id 字段)

我只有一种弹性(帖子)类型,它以嵌套形式将每个帖子与所有 cmets 聚合在一起。

我想将带有 cmets 的帖子作为嵌套对象进行索引,以减少查询的响应时间,但是如果每次添加新的“评论”时我重新索引整个“帖子”文档,它会显着增加索引成本,我该如何处理它有效吗?我可以接受延迟 1 小时的 cmets 数据。

其实是三个问题:

1- 如何更新仅添加评论数据的帖子文档。 (无需重建整个帖子文档并将其发送到弹性)

2- 如何聚合与文档相关的索引命令并将其作为单个命令发送到弹性?

3- River 插件是解决这些问题的方法吗?它是索引 cmets 而无需重建整个 post 文档吗?它是否汇总了与一个文档相关的所有更新并将其应用于一个索引请求?

【问题讨论】:

    标签: indexing elasticsearch elasticsearch-jdbc-river


    【解决方案1】:

    我认为这篇文章回答了你的问题: elastic search, is it possible to update nested objects without updating the entire document?

    可以使用批量 api 来更新多个项目

    没有一条河流可以帮助您不重新索引整个文档。使用嵌套文档,您始终会重新索引整个文档。如果这种情况经常发生并成为一个问题,那么父子映射就是要走的路。

    【讨论】:

    • 我找到了如何应用更新补丁索引,但我仍然对单个文档上的多个更新有些担心,我想知道是否河插件或批量操作将单个文档上的多个更新聚合在一个文件中更新命令或者它只是顺序运行它们,我应该聚合这些索引命令并将它们作为批量操作发送?
    • 你能详细说明你想用这条河完成什么吗?如果尝试对同一文档进行多次更新,您是否试图找到问题的解决方案?您可以为此使用版本属性。检查此网址:elasticsearch.org/guide/en/elasticsearch/guide/current/…
    猜你喜欢
    • 2021-06-14
    • 1970-01-01
    • 1970-01-01
    • 2021-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-26
    • 1970-01-01
    相关资源
    最近更新 更多