V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dyllen
V2EX  ›  Elasticsearch

elasticsearch 的 update by query 版本冲突如何解决?

  •  
  •   dyllen · 2020-12-07 14:19:49 +08:00 · 2239 次点击
    这是一个创建于 1482 天前的主题,其中的信息可能已经有所发展或是发生改变。

    用户导入数据的时候,有可能会连续更新,就会导致版本冲突,更新失败。

    我看 update 是有 retry_on_conflict 参数可以重复提交的。

    update by query 就没有了。

    这种情况下如何解决冲突,使数据更新正确。

    5 条回复    2020-12-07 17:26:05 +08:00
    simonlu9
        1
    simonlu9  
       2020-12-07 14:34:06 +08:00
    队列更新吧,之前我也遇到,客户端请求并发然后就冲突了
    dyllen
        2
    dyllen  
    OP
       2020-12-07 14:39:47 +08:00
    @simonlu9 我也是打算这么做,来看看有没有其他方法。
    Mithril
        3
    Mithril  
       2020-12-07 14:44:49 +08:00
    ElasticSerach 这玩意相当于数据库,最好的办法是在它上面包一层 Application Database 。所有和 ES 通信的全走你这层程序,从这里面控制并发。
    dyllen
        4
    dyllen  
    OP
       2020-12-07 15:03:49 +08:00
    @simonlu9
    @Mithril
    我处理数据实际也是一个一个发的 update by query,只不过是连续的,第一个更新成功之后,后面的都是返回版本冲突。这个为什么也会版本冲突呢。
    dyllen
        5
    dyllen  
    OP
       2020-12-07 17:26:05 +08:00
    @dyllen 是刷新的问题,es 更新之后不会马上出现下 search 结果里面,又延时。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1961 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 00:48 · PVG 08:48 · LAX 16:48 · JFK 19:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.