swisnl/laravel-fulltext
swisnl/laravel-fulltext adds MySQL full-text search to Laravel Eloquent models. Create FULLTEXT indexes, run natural language or boolean searches, rank results by relevance, and integrate search directly into your models with a simple, fluent API.
FULLTEXT index into an Eloquent-friendly search layer (searchable trait, weighted columns, relevance score, boolean/wildcard queries). It lets you ship "search our catalog / customers / documents" inside a sprint rather than a quarter.FULLTEXT later means re-indexing and re-tuning relevance.Adopt when:
FULLTEXT available and already provisioned.Look elsewhere when:
FULLTEXT; use tsvector or Scout's database driver).SearchService interface with contract tests so swapping to Scout + Meilisearch is a contained change.FULLTEXT will not exist there, so plan for a MySQL service in the test pipeline from day one.To executives: We can deliver working search in days instead of weeks, with no new vendor, no new infrastructure, and no incremental cloud spend — it runs on the database we already operate. It is MIT-licensed and small enough to audit. Search is table-stakes for our users but not our moat, so the goal is a credible, low-cost implementation now, with a clean upgrade path to a dedicated search engine if usage data proves it is worth the investment. The main risk is dependency size and maintenance: we mitigate by isolating it behind an internal interface, so replacing it later is a contained engineering task rather than a rewrite.
To engineering: It is a thin Eloquent trait plus FULLTEXT indexes — low cognitive overhead, no new service to operate, no new deployment topology. Expect to manage the known MySQL FULLTEXT caveats: minimum token length, stopwords, no substring matching without boolean wildcards, index rebuild cost on large tables, and write amplification on hot tables. Plan for a MySQL-backed test environment, a migration/index strategy for existing data, and a SearchService abstraction with contract tests and a feature flag so we can swap in Laravel Scout + Meilisearch without touching call sites. Track zero-result queries and latency from day one; those metrics are the decision gate for the next step.
How can I help you explore Laravel packages today?