PHPackages                             nimble/elastic-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Search &amp; Filtering](/categories/search)
4. /
5. nimble/elastic-bundle

ActiveSymfony-bundle[Search &amp; Filtering](/categories/search)

nimble/elastic-bundle
=====================

Simple elasticsearch Symfony integration.

v0.50(7y ago)12042MITPHPPHP &gt;=5.5

Since Apr 8Pushed 7y ago2 watchersCompare

[ Source](https://github.com/pinkeen/NimbleElasticBundle)[ Packagist](https://packagist.org/packages/nimble/elastic-bundle)[ RSS](/packages/nimble-elastic-bundle/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (4)Versions (13)Used By (0)

NimbleElasticBundle
===================

[](#nimbleelasticbundle)

[![Scrutinizer](https://camo.githubusercontent.com/ea41a968eade52714f74ae6f2a50cfefb04b89940bc34326e1ed30d44e27b4f0/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f4e696d626c65436f2f4e696d626c65456c617374696342756e646c652f6261646765732f7175616c6974792d73636f72652e706e67)](https://scrutinizer-ci.com/g/NimbleCo/NimbleElasticBundle/)[![SensioLabsInsight](https://camo.githubusercontent.com/5886c362ca3c46445980912bab8a98b125472f063555df9fcbc571a92d628d98/68747470733a2f2f696e73696768742e73656e73696f6c6162732e636f6d2f70726f6a656374732f63353432666564322d383465372d343531362d616532342d3835623837336335373462372f6d696e692e706e67)](https://insight.sensiolabs.com/projects/c542fed2-84e7-4516-ae24-85b873c574b7)

A simple bundle that integrates *elasticsearch* into your *Symfony* project using the official [elasticsearch PHP client](https://github.com/elastic/elasticsearch-php).

Why another *elasticsearch* bundle?
-----------------------------------

[](#why-another-elasticsearch-bundle)

Most ES bundles I found assume that one entity is one ES document. This is very limiting, as very often denormalization is needed with more complex data. Your domain model does not need to be reflected in your elasticsearch mapping.

Also the most popular bundle does not give you an easy way to update the "master" document when any of your child entities change. This should be simple with this bundle.

This bundle directly exposes the official *elasticsearch* `Client` without wrapping it too much. I don't see much reason (besides rudimentary error checking) for using any query builders when most queries can be built dynamically as array and serialized to JSON directly.

This bundle provides only basic functionalities, which means you will have to write more code, but gives you flexiblity in return. For example:

- A mechanism for synchronizing your entities with ES is provided (doctrine listeners or you have to dispatch create/update/delete events manually).
- A mechanism for transforming your entities into ES documents is provided but you have to write the actual transformer yourself. This is better for performance and a must if you want flexibility. It also allows you completetly decouple the ES from your model (no unnecessary getters needed on your entities, yay!).
- No mechnanism for automagically transforming ES results back into your entities will be ever provided (probably), because this would seriously limit the flexibility. Usually you could implement this yourself in a few lines, with your performance considerations in mind.

It will have great docs. ;)

Installation
------------

[](#installation)

The usual [Symfony stuff](http://symfony.com/doc/current/cookbook/bundles/installation.html).

The **composer.json** needs: `"nimble/elastic-bundle": "dev-master@dev",`.

The **AppKernel.php** needs: `new Nimble\ElasticBundle\NimbleElasticBundle(),`.

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~164 days

Recently: every ~262 days

Total

9

Last Release

2644d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/852691f2c0476ae46e9bc0751fb11a6bf27092e34f5e35e2a70e2d003787670c?d=identicon)[pinkeen](/maintainers/pinkeen)

---

Top Contributors

[![pinkeen](https://avatars.githubusercontent.com/u/2019132?v=4)](https://github.com/pinkeen "pinkeen (49 commits)")

---

Tags

symfonybundleelasticsearch

### Embed Badge

![Health badge](/badges/nimble-elastic-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/nimble-elastic-bundle/health.svg)](https://phpackages.com/packages/nimble-elastic-bundle)
```

###  Alternatives

[jolicode/elastically

Opinionated Elastica based framework to bootstrap PHP and Elasticsearch implementations.

2571.7M1](/packages/jolicode-elastically)[dms/dms-filter-bundle

DMS Filter Bundle, makes Annotation based entity filtering available in Symfony

78351.6k1](/packages/dms-dms-filter-bundle)[cmsig/seal-symfony-bundle

An integration of CMS-IG SEAL search abstraction into Symfony Framework.

15195.8k5](/packages/cmsig-seal-symfony-bundle)[rollerworks/search-bundle

RollerworksSearch Bundle

1015.8k1](/packages/rollerworks-search-bundle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
