Model::search() that understands meaning
"Sleepy pets" finds the post about cats napping. Hybrid BM25 + kNN relevance with server-side embeddings, wired straight into Eloquent through Laravel Scout — and one Opensolr index serves all your models.
Scout, exactly as documented
Four lines of .env, and every Searchable model gets semantic search. No Solr configuration, no schema design, no embedding model.
.env
SCOUT_DRIVER=opensolr OPENSOLR_EMAIL=you@example.com OPENSOLR_API_KEY=your-api-key OPENSOLR_INDEX=myapp__dense
Anywhere in your app
Post::search('budget dining') ->where('category', 'restaurants') ->paginate(15); // hybrid BM25 + kNN, embedded // server-side, real totals
Why not Algolia / Meilisearch / Typesense?
The other Scout drivers charge for search features. This one comes with a whole managed Solr platform.
One index, all your models
Documents are scoped per model automatically (meta_model), so a single index — a single plan — covers Posts, Products, Users, everything. No per-collection pricing.
Semantic + keyword, fused
Hybrid scoring per document via Opensolr's native {!hybrid} Solr parser, with a tunable semantic↔lexical balance. Scout's where() / whereIn() map to Solr filters with full operator support.
A platform, not just an engine
Web crawler, analytics, backups, query elevation, the native Solr /select API with facets and highlighting — all included around your Scout index.
Also available for: LangChain · LlamaIndex · Haystack · MCP / AI Agents
Upgrade your app's search this afternoon
Free 15-day trial, no credit card. Create a vector-enabled index (us, de, fi) and point Scout at it.