【问题标题】:Testing Rails Elasticsearch implementation, waiting for refresh_index to finish before searching测试 Rails Elasticsearch 实现,在搜索之前等待 refresh_index 完成
【发布时间】:2023-02-25 18:25:37
【问题描述】:

在我的 Elasticsearch 测试规范中,我遇到了很多关于“竞争条件”的问题。有时我的测试通过,有时不通过,有时他们找到 X 个结果,有时他们找到不同数量的结果。这一切都源于我在 ES 完成新记录到数据库的索引之前执行的搜索。

我创建记录,然后运行: Model.__elasticsearch__.refresh_index! 刷新索引,然后执行我的搜索,但我得到的搜索结果不一致。

我可以通过在 .refresh_index! 之后添加 sleep 3 来解决这个问题,但这一切看起来都是一个可怕的黑客攻击。这个问题还有其他解决方案吗?

我正在使用带有 rspec 的 elasticsearch gem。

gem 'elasticsearch', '< 7.14'
gem 'elasticsearch-model', '7.1.1'
gem 'elasticsearch-rails', '7.1.1'

【问题讨论】:

    标签: ruby-on-rails elasticsearch elasticsearch-rails


    【解决方案1】:

    如果我完全理解您的工作流程和用例,您可以利用索引 API 的 refresh 查询参数使文档可即时搜索 (docs)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-31
      • 2013-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-15
      • 1970-01-01
      相关资源
      最近更新 更多