繁体   English   中英

为什么我的天真的Elasticsearch更新经常会因文档版本冲突而失败?

[英]Why does my naive Elasticsearch update fail frequently with a document version conflict?

我正在使用0.9版,并且我有这种非常幼稚的方法来更新文档,实际上是进行比较和交换:
(仅显示相关代码)

    for (int i = 0; i < MAX_RETRY; i++) {
        GetResponse get = client.prepareGet().execute().actionGet();
        // Assume document already exists
         try {
              client
                .prepareIndex()
                .setId(id)
                .setSource(newDoc)
                .setVersion(get.getVersion())
                .execute()
                .actionGet();
                // Successfully updated
         } catch (VersionConflictEngineException e) {
             continue; //retry
         }
         throw UpdateFailedException();
    } 

该代码适用于大多数更新,但是失败的频率比版本冲突时要高。 奇怪的是,当服务器文档出现故障时,它似乎总是比预期版本+1。 有什么明显的我想念的东西吗?

我了解Elasticsearch具有适当的更新功能,但无法使用此ATM。

事实证明,由于错误,我只是经常合法地更新文档。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM