optimistdigital / laravel-scout-batch-searchable
这个Laravel包添加了BatchSearchable特性,允许批量更新Scout。
2.2.3
2024-01-26 15:22 UTC
Requires
- php: >=7.3.0
- illuminate/support: >=7.0
- laravel/scout: ^9.8.1|^10.0.0
README
此Laravel包允许批量更新Scout。
要求
- Laravel Scout 9+
- 带cron的调度器
描述
此包提供了一个新的特性BatchSearchable
,应替换Laravel Scout提供的常规Searchable
特性使用。
使用此特性,所有通过Scout推送到搜索服务器的更新(无论是MeiliSearch、Algolia还是其他)都将批量发送,而不是逐个发送。
更新的发送在两种可能的条件下进行
当
scout.batch_searchable_max_batch_size
(默认250)超过时
或
scout.batch_searchable_debounce_time_in_min
(默认1)分钟从上次更新到待处理队列已过去
需要更新的模型的ID存储在默认缓存层中,使用Cache
辅助函数。
防抖检查使用Laravel的调度器安排一个工作,检查所有待处理的更新队列,看是否已通过所需的时间。这需要系统有一个工作良好的cron设置,每分钟调用一次schedule:run
。
安装
通过Composer在Laravel Nova项目中安装此包并运行迁移
composer require outl1ne/laravel-scout-batch-searchable
用法
在之前使用Searchable特性的地方,只需使用BatchSearchable即可
use Outl1ne\ScoutBatchSearchable\BatchSearchable; class SomeModel extends Model { use BatchSearchable; }
致谢
许可
Laravel Scout Batch Searchable是开源软件,许可协议为MIT许可。