首页 > 解决方案 > 插入后无法立即删除文档?

问题描述

我为我的 ElasticSearch 功能创建了一些测试,我注意到一些奇怪的行为。如果我有一个测试:

  1. 插入文档并确认没有错误
  2. 检索相同的文档,确认没有错误并确认它具有预期值
  3. 删除文档,确认没有错误并确认 1 个文档已被删除

然后第三次测试将失败,因为删除了 0 个文档。如果我采取以下步骤之一:

然后删除 1 个文档,第 3 次测试将通过。在第三次测试失败的情况下,我进入了我的 ES 实例并确认该文档存在。

这让我相信,在插入文档后,有一段时间必须发生一些事情,然后才能删除文档。

我的问题是 - 插入后需要做什么才能删除文档,在我的测试中是否有比睡 1 秒更好的方法来处理这个问题?

我正在使用 Golang 进行编码,并且正在使用Olivere ES 客户端

标签: goelasticsearch

解决方案


Elasticsearch 操作可能不一致。

您可以检查该选项refreshwait_for_active_shards它是否适合您的测试。

注意:向不一致的系统添加测试总是很困难的。


推荐阅读