我使用嵌入式节点与ElasticSearch和Java实现了集成测试。在启动之后,我使用批量请求为我的测试插入了一个数据集。您可以看到已使用方法的此链接:https://templth.wordpress.com/2015/01/23/implementing-integration-testing-for-elasticsearch-with-java/。
在实际执行测试之前,我必须稍等一下(使用Thread.sleep)。否则数据不可用,测试失败。
它是嵌入式ElasticSearch节点的正常行为,是否可以更新/配置?
非常感谢你的帮助, 亨利
答案 0 :(得分:2)
是的,这是完全正常的。
要使最近编制索引的文档可供搜索,请发出刷新。这通常是定期发生的,周期的长度由" refresh_interval"设置。 (缺省= 1秒)。
http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-refresh.html
请注意,refresh实际上并未将挂起的数据提交到磁盘。
对于您的测试场景,它仍然是一个不错的方法。
此处描述了另一个:
http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-update-settings.html
在测试期间,将refresh_interval设置为-1,这样可以节省调用刷新的负担。你完成后一定要把它还掉!