New

Just launched: Vueblocks, a brand-new search engine for Vue packages! Explore Vueblocks →

optimistdigital/laravel-scout-batch-searchable

This Laravel package adds a BatchSearchable trait to allow batching Scout updates.
14,014 31
Install
composer require optimistdigital/laravel-scout-batch-searchable
Latest Version:2.2.4
PHP:>=7.3.0
Laravel:7 – 12
License:MIT
Last Updated:May 22, 2025
Links: GitHub  ·  Packagist
Maintainer: Tarpsvo

Laravel Scout Batch Searchable

Latest Version on Packagist Total Downloads

This Laravel package allows for batching of Scout updates.

Requirements

  • Laravel Scout 9+
  • Scheduler with cron

Description

This package provides a new trait BatchSearchable that should be used instead of the regular Searchable trait provided by Laravel Scout.

Using that trait, all updates pushed through Scout to the search server (whether it be MeiliSearch, Algolia or whatever else), are batched together instead of being sent one-by-one.

The updates are sent on two possible conditions:

Either scout.batch_searchable_max_batch_size (default 250) is exeeded

or

scout.batch_searchable_debounce_time_in_min (default 1) minutes have passed from the last update to the pending queue

The IDs of models that require updating are stored in the default cache layer using the Cache helper.

The debounce check uses Laravel's Scheduler to schedule a job that checks through all the pending update queues and sees if the required time has passed. This requires that the system has a working cron setup that calls schedule:run every minute.

Installation

Install the package in a Laravel Nova project via Composer and run migrations:

composer require outl1ne/laravel-scout-batch-searchable

Usage

Where you previously used the Searchable trait, just use BatchSearchable instead:

use Outl1ne\ScoutBatchSearchable\BatchSearchable;

class SomeModel extends Model {
    use BatchSearchable;
}

Credits

License

Laravel Scout Batch Searchable is open-sourced software licensed under the MIT license.

Related Packages

outl1ne/laravel-scout-batch-searchable

This Laravel package adds a BatchSearchable trait to allow batching Scout update...

46,407 31
namoshek/laravel-scout-database

A generic Laravel Scout driver which performs full-text search on indexed model...

77,875 19
lunarphp/scout-database-engine

Laravel Scout engine to allow full searching in MySQL and PostgreSQL.

51,684 5
baijunyao/laravel-scout-elasticsearch

Elasticsearch Driver for Laravel Scout

23,968 79
wfeller/laravel-batch

Insert, update or delete models in batch, while still firing model events.

4,482 5

Version History

Version Released PHP Laravel License
2.2.4 >=7.3.0 >=7.0 MIT
2.2.3 >=7.3.0 >=7.0 MIT
2.2.2 >=7.3.0 >=7.0 MIT
2.2.1 >=7.3.0 >=7.0 MIT
2.2.0 >=7.3.0 >=7.0 MIT