elasticsearch,elastic-stack,Php,elasticsearch,Elastic Stack" /> elasticsearch,elastic-stack,Php,elasticsearch,Elastic Stack" />

Php elasticserach中如何处理版本冲突引擎异常

Php elasticserach中如何处理版本冲突引擎异常,php,elasticsearch,elastic-stack,Php,elasticsearch,Elastic Stack,我使用了PHP Elasticsearch客户端,我总是遇到这样的异常 { "took": 17, "timed_out": false, "total": 3, "updated": 2, "deleted": 0, "batches": 1, "version_conflicts": 1,

我使用了PHP Elasticsearch客户端,我总是遇到这样的异常

{
    "took": 17,
    "timed_out": false,
    "total": 3,
    "updated": 2,
    "deleted": 0,
    "batches": 1,
    "version_conflicts": 1,
    "noops": 0,
    "retries": {
        "bulk": 0,
        "search": 0
    },
    "throttled_millis": 0,
    "requests_per_second": -1.0,
    "throttled_until_millis": 0,
    "failures": [{
        "index": "questions_statistics",
        "type": "_doc",
        "id": "IwSmq3kB2OehDv3R2YeP",
        "cause": {
            "type": "version_conflict_engine_exception",
            "reason": "[IwSmq3kB2OehDv3R2YeP]: version conflict, required seqNo [1927448], primary term [1]. current document has seqNo [1927450] and primary term [1]",
            "index_uuid": "HW9XMxZtTLi2_Iv_Ryl01w",
            "shard": "0",
            "index": "questions_statistics"
        },
        "status": 409
    }]
}

这似乎是乐观锁定导致的版本冲突。我认为这种例外情况不应该被处理。我应该抓住并写下日志吗?或者有其他方法来处理吗?

这取决于您如何处理应用程序中的版本冲突,如果您使用的是Last Write Win冲突解决方案,您可以通过在Elasticsearch中提供手动版本来忽略版本冲突,但是,如果您想确保正在写入Elasticsearch的文档已经存在最新字段值版本冲突,则可以帮助您避免更新以前更新过的文档。 关于日志记录,在系统中保留所有类型的失败操作总是好的