PHPackages                             evheniy/search-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. evheniy/search-bundle

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

evheniy/search-bundle
=====================

The SearchBundle adds the ability to use simple elasticsearch search in your application.

1.0.11(10y ago)02.1kMITPHPPHP &gt;=5.4.0

Since Apr 5Pushed 10y ago1 watchersCompare

[ Source](https://github.com/evheniy/SearchBundle)[ Packagist](https://packagist.org/packages/evheniy/search-bundle)[ RSS](/packages/evheniy-search-bundle/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (8)Dependencies (3)Versions (13)Used By (0)

SearchBundle
============

[](#searchbundle)

[![Latest Stable Version](https://camo.githubusercontent.com/a6be38870d96a0479007016c17267ddd93891309d4a7312170bdafd07ecd1b26/68747470733a2f2f706f7365722e707567782e6f72672f657668656e69792f7365617263682d62756e646c652f762f737461626c652e737667)](https://packagist.org/packages/evheniy/search-bundle) [![Total Downloads](https://camo.githubusercontent.com/9ec1c089c57fb204cf143733a96b2d1df8349fb3c53ad6c0d3fc7be81b7a0c8a/68747470733a2f2f706f7365722e707567782e6f72672f657668656e69792f7365617263682d62756e646c652f646f776e6c6f6164732e737667)](https://packagist.org/packages/evheniy/search-bundle) [![Latest Unstable Version](https://camo.githubusercontent.com/5fc2d70ff882dd0d71c3ce4084a8b917a4c212ae2df3a9a476752f33987b9f93/68747470733a2f2f706f7365722e707567782e6f72672f657668656e69792f7365617263682d62756e646c652f762f756e737461626c652e737667)](https://packagist.org/packages/evheniy/search-bundle) [![License](https://camo.githubusercontent.com/3a4f847f1bcf9352cc3a062347a607a57022505c84dd880f549269d29b7a37cf/68747470733a2f2f706f7365722e707567782e6f72672f657668656e69792f7365617263682d62756e646c652f6c6963656e73652e737667)](https://packagist.org/packages/evheniy/search-bundle)

This bundle provides Search mechanism (elasticsearch) in Symfony2

Documentation
-------------

[](#documentation)

You need to set config:

```
search:
    index_name: ~
    index_type: ~
    color_tag_open:
    color_tag_close:
    search:
        fields: [fields]
        parameters:
            fuzziness: 0.6
            operator: or
            type: best_fields
            tie_breaker: 0.3
            minimum_should_match: 30%
            priorities:
                 field: 10
        filter:
            fields: [fields]
            count: 10
            analyze: true

```

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

[](#installation)

Elasticsearch:

```
wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.4.4.deb
sudo dpkg -i elasticsearch-1.4.4.deb
rm elasticsearch-1.4.4.deb

sudo service elasticsearch start

cd /usr/share/elasticsearch
sudo bin/plugin -install mobz/elasticsearch-head

http://localhost:9200/_plugin/head/

```

SearchBundle:

```
$ composer require evheniy/search-bundle "1.*"

Or add to composer.json

"evheniy/search-bundle": "1.*"

```

AppKernel:

```
    public function registerBundles()
        {
            $bundles = array(
                ...
                new Evheniy\SearchBundle\SearchBundle(),
            );
            ...

```

config.yml:

```
    #SearchBundle
    search:
        index_name: ~
        index_type: ~
        color_tag_open:
        color_tag_close:
        search:
            fields: [fields]
            parameters:
                fuzziness: 0.6
                operator: or
                type: best_fields
                tie_breaker: 0.3
                minimum_should_match: 30%
                priorities:
                    field: 10
            filter:
                fields: [fields]
                count: 10
                analyze: true

```

Indexing

```
    $indexer = $this->getContainer()->get('search_index');
    $indexer->deleteIndex();
    $indexer->createIndex();
    foreach ($pages as $page) {
        $indexer->indexDocument(
            DocumentEntity::createFromArray(
                $indexer->getIndexFieldNames(),
                array(
                    'url'     => $page->getUrl(),
                    'title'   => $page->getPageTitle(),
                    'article' => $page->getPageArticle()
                )
            )
        );
    }

```

indexAction()

```
    $request    = $this->container->get('request');
    $searcher   = $this->container->get('search');
    $searchText = strip_tags(trim($request->get('q')));
    $page       = $request->get('page', 1) < 1 ? 1: $request->get('page', 1);
    $size       = $request->get('size', 10) < 1 ? 10: $request->get('size', 10);

    $filterTitle       = $request->get('filterTitle', array());
    $filterDescription = $request->get('filterDescription', array());

    $results = $searcher->search(
        $searchText,
        $size,
        $page,
        array(
            'filterTitle'       => $filterTitle,
            'filterDescription' => $filterDescription
        )
    );

    return $this->render(
        'AppBundle:Default:index.html.twig',
        array(
            'searchText'  => $searchText,
            'filters'     => $searcher->getFilters(),
            'results' => $results,
            'pagination'  => $searcher->getPaginator()
        )
    );

```

index.html.twig

```

            {% include "AppBundle:Default:searchFilters.html.twig" %}

            {% for result in results %}
                {{ result.title }}
                {{ result.article }}
            {% endfor %}

                {% include "SearchBundle::pagination.html.twig" %}

```

searchFilters.html.twig

```
{% for key,filter in filters %}

                {{- ('index.filters.'~key)|trans({}, 'AppBundle') -}}

                    {% for field in filter %}

                                {{ field.name|upper }}
                                {{ field.count }}

                    {% endfor %}

{% endfor %}

```

License
-------

[](#license)

This bundle is under the MIT license. See the complete license in the bundle:

```
Resources/meta/LICENSE

```

[MakeDev.org](http://makedev.org/)

###  Health Score

30

—

LowBetter than 62% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity65

Established project with proven stability

 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 ~15 days

Recently: every ~39 days

Total

12

Last Release

3917d ago

Major Versions

0.2 → 1.02015-04-06

PHP version history (3 changes)0.1PHP &gt;=5.3.0

1.0.4PHP &gt;=5.5.0

1.0.10PHP &gt;=5.4.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/8e25a30b83f9493998640ece1013e05059e4dd4ac55a482c650eb760ac37d843?d=identicon)[evheniy](/maintainers/evheniy)

---

Top Contributors

[![evheniy](https://avatars.githubusercontent.com/u/1702242?v=4)](https://github.com/evheniy "evheniy (31 commits)")

---

Tags

searchelasticsearchSymfony2Simplefacets

### Embed Badge

![Health badge](/badges/evheniy-search-bundle/health.svg)

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

###  Alternatives

[mailerlite/laravel-elasticsearch

An easy way to use the official PHP ElasticSearch client in your Laravel applications.

936572.3k2](/packages/mailerlite-laravel-elasticsearch)[matchish/laravel-scout-elasticsearch

Search among multiple models with ElasticSearch and Laravel Scout

7441.7M3](/packages/matchish-laravel-scout-elasticsearch)[jeroen-g/explorer

Next-gen Elasticsearch driver for Laravel Scout.

399654.3k](/packages/jeroen-g-explorer)[jsq/amazon-es-php

Support for using IAM authentication with the official Elasticsearch PHP client

9211.2M13](/packages/jsq-amazon-es-php)[heyday/silverstripe-elastica

Provides Elastic Search integration for SilverStripe DataObjects using Elastica

1137.9k2](/packages/heyday-silverstripe-elastica)[blomstra/search

Replaces Flarum search with one powered by an elastic search server.

125.1k](/packages/blomstra-search)

PHPackages © 2026

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