Php elasticserach中如何处理版本冲突引擎异常
我使用了PHP Elasticsearch客户端,我总是遇到这样的异常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,
{
"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的文档已经存在最新字段值版本冲突,则可以帮助您避免更新以前更新过的文档。 关于日志记录,在系统中保留所有类型的失败操作总是好的