数据插入和可用时间之间的滞后
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,从而节省调用刷新的负担。完成后一定要放回去!
我使用 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,从而节省调用刷新的负担。完成后一定要放回去!