如何阻止 Algolia 在使用 Laravel Scout 重新导入记录时删除所有记录?

问题描述 投票:0回答:1

我在使用 Laravel Scout 和 Algolia 时遇到问题:执行

php artisan scout:import "App\Models\Product"
会导致 Algolia 索引在重新导入之前首先清除所有产品。

是否有一种方法可以重新导入产品,以便覆盖现有产品而不是先清除索引?

我的目标是在产品数据或配置更新期间最大限度地减少与 Algolia 链接的搜索服务的停机时间。

我尝试通过开发单独更新产品的命令来解决此问题。但由于处理速度慢,这种方法被证明效率低下。此外,我还发现了 Algolia 的问题,它引发了有关个人更新数量限制的投诉。

laravel search algolia laravel-scout
1个回答
0
投票

Algolia 的 Scout Extended 软件包包含一个

scout:reimport
命令,可以执行您正在寻找的零停机数据替换:零停机重新导入

在生产环境中工作时,您希望在重新导入数据时保持现有的搜索体验可用。您可以使用 scout:reimport Artisan 命令来执行此操作:

php artisan scout:reimport

为了确保在重建期间不会中断索引上发生的搜索,Scout Extended 使用临时索引来导入所有记录,然后再将其移动到生产索引。

警告:通过此操作,您的应用程序的记录数暂时增加了一倍。请验证您的计划是否包含足够的可用记录来执行此操作。

© www.soinside.com 2019 - 2024. All rights reserved.