outl1ne / laravel-scout-batch-searchable
此 Laravel 扩展包为 Scout 添加了一个 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 的调度器安排一个作业,检查所有待处理的更新队列,查看是否已过所需时间。这要求系统有一个每分钟调用 schedule:run
的有效 cron 设置。
安装
使用 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。