- Does meilisearch/search-bundle work with Laravel?
- No. Despite being catalogued among Laravel and PHP packages, meilisearch/search-bundle is a Symfony bundle that ships a Bundle subclass, a DI extension, autowired services and Symfony console commands, none of which Laravel's service container can register or load. For Laravel, use Laravel Scout with the official Meilisearch driver plus meilisearch/meilisearch-php instead, which gives you the same engine and server through an idiomatic integration. The bundle itself will not just work in a Laravel application.
- How do I install and configure meilisearch/search-bundle in a Symfony project?
- Install it with Composer and register the bundle in config/bundles.php as you would any Symfony bundle. You then point it at your Meilisearch host and API key through bundle configuration, and the DI extension wires up services such as Meilisearch, Aggregator and SearchableRepository for autowiring. Index settings can be declared as code with PHP attributes on your searchable classes, and console commands like meilisearch:create-index, meilisearch:update-settings and meilisearch:import handle setup, settings reconciliation and backfilling.
- Which Symfony and PHP versions does this Meilisearch bundle support?
- The bundle targets Symfony 6.4 and 7.x, which is where it fits with minimal glue code and is the intended use case. Because its release cadence tracks both meilisearch-php and Symfony majors, check the composer.json constraints for the exact tags before upgrading either side. Pin your Symfony minor and bundle version together so a routine framework bump does not silently drop support.
- How do I index Doctrine entities with Meilisearch using this bundle?
- You mark an entity as searchable and the bundle maps it into a Meilisearch index, with the SearchableRepository and Aggregator services handling document construction and pushing. Initial population typically runs through the meilisearch:import console command rather than inside a web request. Most of the real work is not library plumbing but deciding index settings, defining which fields are indexed, and planning the backfill for existing data.
- How do I configure searchable, filterable and sortable attributes in Meilisearch?
- The bundle lets you declare index settings as code, usually via PHP attributes tied to the searchable class, and then reconciles those settings with the Meilisearch server. Filterable and sortable attributes must be declared explicitly or filters and sorts fail at query time with a 400. The meilisearch:update-settings command pushes setting changes, and treating settings as versioned code is what keeps environments consistent.
- How do I keep the Meilisearch index in sync when Doctrine entities change?
- You need explicit reindex triggers: Doctrine lifecycle listeners, domain events, or a queue job that pushes updates after persistence. The bundle gives you indexing primitives, not automatic sync guarantees, so deletions and bulk updates deserve particular attention. For large or schema-changing updates, plan a blue/green index swap, because neither this bundle nor Scout gives zero-downtime reindexing for free.
- What is the Laravel equivalent of this Symfony bundle?
- Laravel Scout with the official Meilisearch driver, built on meilisearch/meilisearch-php, is the idiomatic path and covers the same engine, server and query features. An evaluation spike on either side transfers well because roughly 80 percent of the work, including index settings, backfill and relevance tuning, is identical. Do not try to bridge the Symfony bundle into Laravel just to reuse its API.
- How do I avoid version skew between the bundle, meilisearch-php and the Meilisearch server?
- Pin all three: the Symfony minor, the bundle version, and the meilisearch-php version, plus the Meilisearch server image tag or Cloud version. Skew between client and server produces confusing 400 errors on settings and search parameters that look like application bugs. Add the server version to your CI or staging checks so an infrastructure bump is a deliberate, tested change.
- How can I test Meilisearch integration without a real server?
- Run a disposable Meilisearch instance in CI, as a container or test-scoped server, and exercise index creation, import and settings reconciliation against it, because mock clients will not catch settings or filter-parameter mistakes. Keep integration tests focused on query behavior such as filters, facets, sort and typo tolerance. Unit-test your own document mapping and reindex triggers separately so failures are easy to localize.
- Is meilisearch/search-bundle actively maintained, and what are the alternatives?
- It is maintained under the Meilisearch organisation, MIT licensed and recently released, so vendor abandonment risk is low and you keep a fork escape hatch. The 154 stars and reported zero dependents look like incomplete ecosystem data rather than evidence nobody uses it, but expect a thinner public corpus of issue threads than larger packages. Alternatives are using meilisearch/meilisearch-php directly in framework-agnostic PHP workers, Laravel Scout for Laravel, or a different engine such as Algolia or Elasticsearch if you need features Meilisearch lacks.