2017-09-05 111 views
0

我正在使用Scout + Algolia在我的Laravel應用程序中搜索表格。我唯一的缺點是刪除模型。我的理解是,當一個模型被刪除時,偵察員將更新algolia,然後更新我的索引。一旦模型被刪除,我將重定向回到我的搜索路線,但路線要求我進行硬刷新以查看我的搜索列表的任何更新。Laravel 5.4,Scout&Algolia模型更新緩慢

對這個問題可能有什麼想法?

感謝

回答

3

我認爲這個問題是一個競爭條件,而不是一個緩存的問題。

當你做$model->delete()事件將派遣更新Algolia,但Algolia的索引操作是異步的。因此,該頁面可能在實際發生刪除之前顯示。

索引操作是異步的,因爲添加數據會觸發大量計算並花費幾秒鐘。 另外,Algolia始終優先搜索電話。這意味着如果您的應用程序發送大量搜索查詢,則更新將延遲到服務器可以處理它。

Algolia返回此類操作的taskID,以便您可以使用它查看操作是否已執行。 Laravel默認不會返回它,所以需要進行一些修改。

+1

感謝@JulienBourdeau。我認爲最好的方法是訂閱模型事件,然後渲染視圖。希望當Algolia收錄索引時,這個事件將會發生。 – jjkilpatrick