dyllen

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

  •  
  •   dyllen · Dec 7, 2020 · 6817 views
    This topic created in 2068 days ago, the information mentioned may be changed or developed.

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

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

    update by query 就没有了。

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

    5 replies    2020-12-07 17:26:05 +08:00
    simonlu9
        1
    simonlu9  
       Dec 7, 2020
    队列更新吧,之前我也遇到,客户端请求并发然后就冲突了
    dyllen
        2
    dyllen  
    OP
       Dec 7, 2020
    @simonlu9 我也是打算这么做,来看看有没有其他方法。
    Mithril
        3
    Mithril  
       Dec 7, 2020
    ElasticSerach 这玩意相当于数据库,最好的办法是在它上面包一层 Application Database 。所有和 ES 通信的全走你这层程序,从这里面控制并发。
    dyllen
        4
    dyllen  
    OP
       Dec 7, 2020
    @simonlu9
    @Mithril
    我处理数据实际也是一个一个发的 update by query,只不过是连续的,第一个更新成功之后,后面的都是返回版本冲突。这个为什么也会版本冲突呢。
    dyllen
        5
    dyllen  
    OP
       Dec 7, 2020
    @dyllen 是刷新的问题,es 更新之后不会马上出现下 search 结果里面,又延时。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   897 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 20:47 · PVG 04:47 · LAX 13:47 · JFK 16:47
    ♥ Do have faith in what you're doing.