数据插入和可用时间之间的滞后

Lag between data insertion and when are available

我使用 ElasticSearch 实施了集成测试,Java 使用嵌入式节点。在启动它之后,我立即使用批量请求为我的测试插入了一个数据集。你可以看到这个 link 用于使用的方法:https://templth.wordpress.com/2015/01/23/implementing-integration-testing-for-elasticsearch-with-java/.

在实际执行测试之前,我必须稍等片刻(Thread.sleep)。否则数据不可用且测试失败。

这是嵌入式 ElasticSearch 节点的正常行为吗?可以更新/配置吗?

非常感谢您的帮助, 蒂埃里

是的,这很正常。

要使最近编入索引的文档可供搜索,请执行刷新。这通常会周期性地发生,周期的长度由 "refresh_interval"(默认值=1s)设置。

http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-refresh.html

请注意,刷新实际上并没有将挂起的数据提交到磁盘。

对于您的测试场景,它仍然是一个不错的方法。

这里描述了另一个:

http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-update-settings.html

在测试期间,将 refresh_interval 设置为 -1,从而节省调用刷新的负担。完成后一定要放回去!