2017-09-05 20 views
0

私はLaravelアプリケーションのテーブルを検索するためにScout + Algoliaを使用しています。私が持っている唯一のポイントは、モデルを削除するときです。私の理解は、モデルが削除されたときにスカウトが藻類を更新し、次に指標を更新するということです。モデルが削除されると、私の検索があるルートにリダイレクトされますが、検索リストの更新を確認するためにルートを更新する必要があります。Laravel 5.4、Scout&Algoliaモデルの更新が遅い

問題の原因が考えられますか?

ありがとうございます。

答えて

3

私は問題が競合状態であり、キャッシュの問題ではないと思います。

$model->delete()を実行すると、イベントはAlgoliaを更新するために送出されますが、Algoliaのインデックス操作は非同期です。したがって、実際に削除が行われる前にページが表示される可能性があります。

データを追加すると計算量が多くなり、数秒かかることがあるため、インデックス処理は非同期です。 さらに、Algoliaは常に検索呼び出しの優先順位を付けます。つまり、アプリが大量の検索クエリを送信した場合、サーバがそれを処理できるようになるまで、更新は遅れることになります。

Algoliaは、この種の操作のtaskIDを返します。この操作によって、操作が実行されるかどうかを確認できます。 Laravelはデフォルトでそれを返しませんので、いくつかの変更が必要です。

+1

@JulienBourdeauに感謝します。モデルイベントを購読してからビューをレンダリングするのが最善のアプローチだと思います。うまくいけば、イベントはAlgoliaが索引をつけたときに発火するでしょう。 – jjkilpatrick

関連する問題