yab/laravel-scout-mysql-driver
A Laravel Scout engine that powers full-text search directly with MySQL, so you can skip Elasticsearch or Algolia. Adds relevance ranking, boolean and wildcard queries, and easy model integration using native MySQL indexes.
Architecture fit
searchable trait, model observers, queued index jobs), and this driver translates search()/paginate() calls into MySQL MATCH ... AGAINST queries against FULLTEXT indexes.database engine, which covers most of the same use case with first-party support. The low opportunity score (17.4) is consistent with this: the package's core value has largely been absorbed upstream.Integration feasibility
config/scout.php, add FULLTEXT indexes to the searchable tables via migration, and run scout:import to backfill. Realistically a 1–3 day proof of concept for a mid-sized Laravel codebase.innodb_ft_min_token_size (default 3) silently excludes short terms, stopword lists vary by MySQL version, and natural-language mode relevance is not tunable in the way stakeholders expect.Technical risk
DB::table() writes, or soft-delete edge cases bypass Scout observers, leaving stale fulltext indexes that return wrong results without erroring.Key questions
database engine (Laravel 9+)? If yes, this package is redundant.Stack fit
FULLTEXT support and a Laravel app already using Scout. MariaDB works but is a separate compatibility question worth testing explicitly.Migration path
composer require yab/laravel-scout-mysql-driver:<exact>) — never use a floating constraint against an archived package.App\Search\MySqlEngine) so future PHP/Laravel upgrades can be patched locally without waiting on upstream. Register the local class in config/scout.php.FULLTEXT index migrations ($table->fullText(['title','body'])), sized against the actual searchable columns, not every text column.scout:import in batches during a low-traffic window; validate result parity against the current search implementation.Compatibility
laravel/framework and laravel/scout constraints first — the 2021 release date makes conflict likely on Laravel 10/11. If it conflicts, patch the constraint in a fork rather than downgrading the framework.innodb_ft_min_token_size, innodb_ft_enable_stopword, and ngram token size if non-Latin content is in scope.Sequencing
database engine vs. this driver on a representative corpus. Default to native unless it demonstrably fails.Maintenance
Support
Model::count() to indexed document counts to detect drift.Scaling
Failure modes
ft_min_token_size or in the stopword list return nothing rather than partial matches.MATCH queries on large tables can saturate connections; pagination must be capped.Ramp-up
How can I help you explore Laravel packages today?