有沒有辦法檢查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就足夠了。 –