fos-gregooz/elastica-bundle
Symfony bundle that integrates Elasticsearch via the Elastica client, letting you define indexes and mappings in configuration and keep them in sync with Doctrine entities through automatic listeners. Provides repository services so you can run search queries without touching the low-level client.
Bundle subclass with a DI extension, console commands, and Doctrine event subscribers. There is no service provider, facade, or config publishing. It does not plug into Laravel. The PM decision it actually informs is "is this service a Symfony service?" — and if not, the decision is redirected to Laravel Scout with an Elasticsearch driver, or a thin owned service around the official elasticsearch/elasticsearch client.fos-gregooz/elastica-bundle reads as a personal fork or mirror, not the canonical package. The real upstream is friendsofsymfony/elastica-bundle. That is a procurement-level decision, not an engineering detail: it determines who owns our indexing path.Consider it when:
Look elsewhere when:
For executives: This is an integration library, not a product. It removes boilerplate around index definition, population, and data sync — realistically a few engineer-weeks of savings on a first search release. Two facts should govern the business decision: it is Symfony-only, so it is not a candidate for a Laravel codebase, and this particular copy has zero community adoption, so it carries maintenance risk with no support path. Recommendation: treat it as a reference architecture for what our search integration must do, then pick the implementation — Laravel Scout driver, upstream FOSElasticaBundle, or a small owned service — based on our actual framework and Elasticsearch version. Budget for eventually owning the indexing layer regardless, since upstream is also low-velocity.
For engineering: The bundle provides config-declared mappings, Doctrine listeners for incremental indexing, and populate/reset console commands on top of Elastica. Do not pull the zero-star fork as a dependency — diff it against friendsofsymfony/elastica-bundle at the nearest matching tag, PR anything generalizable upstream, and vendor the residue locally if it is genuinely necessary. Confirm the pinned Elastica release supports our target Elasticsearch major before committing. On Laravel this is a non-starter: build a queued indexer service against the official client, and if we want model-driven syncing, benchmark Scout's populate ergonomics against what this bundle offers before choosing. Design the read alias and a queue-backed indexing trigger from day one — synchronous listener indexing puts Elasticsearch on the critical path of every write, and that is the single most common production incident in this bundle family.
How can I help you explore Laravel packages today?