有没有办法检查Elasticsearch是否已完成处理我的请求?
我想为我的应用程序执行集成测试,检查插入后是否可以找到记录。 例如,如果我做出以下请求:检查Elasticsearch是否已完成索引
POST /_all/_bulk
{
"update":{
"_id":419,
"_index":"popc",
"_type":"offers"
}
}
{
"doc":{
"id":"419",
"author":"foo bar",
"number":"642-00419"
},
"doc_as_upsert":true
}
我立即检查,测试失败,因为它需要一段时间Elasticsearch完成我的要求。
如果我在断言之前睡了1秒,它大部分时间都有效,但并非总是如此。
我可以将睡眠时间延长至例如。 3秒,但它使测试非常缓慢,因此我的问题。
我尝试过使用cat pending tasks和pending cluster tasks端点,但响应总是空的。
如果任何这是相关的,我使用Elasticsearch 5.4
,Laravel Scout 3.0.5
和tamayo/laravel-scout-elastic 3.0.3
谢谢,我已将'index.refresh_interval'设置为'1ms',并且1000次测试运行时间为600ms就足够了。 –