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

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

lpi-lab/search-bundle
=====================

A bundle that use the lucene search engine

0.1.8(11y ago)3541ApachePHPPHP &gt;=5.3.3

Since Apr 28Pushed 11y ago3 watchersCompare

[ Source](https://github.com/LaPetiteIndustry/search-bundle)[ Packagist](https://packagist.org/packages/lpi-lab/search-bundle)[ RSS](/packages/lpi-lab-search-bundle/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (2)Versions (10)Used By (0)

search-bundle
=============

[](#search-bundle)

The search bundle is a bundle that offer to you a light search engine. It works on lucene search library and include zend components.

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

[](#installation)

1. in AppKernel

```
    new Ivory\LuceneSearchBundle\IvoryLuceneSearchBundle(),
    new Lpi\Bundle\SearchBundle\LpiSearchBundle(),
```

Configuration
-------------

[](#configuration)

1. in app/config/config.yml

```
    ivory_lucene_search:

        # Index identifier
        search_index:
            # Path to store the index (Required)
            path: %kernel.cache_dir%/search_index

            # Index analyser (Optional)
            # See http://framework.zend.com/manual/en/zend.search.lucene.charset.html
            analyzer: ZendSearch\Lucene\Analysis\Analyzer\Common\Text\CaseInsensitive

            # Max Buffered documents (Optional)
            # See http://framework.zend.com/manual/en/zend.search.lucene.index-creation.html#zend.search.lucene.index-creation.optimization.maxbuffereddocs
            max_buffered_docs: 10

            # Max merge documents (Optional)
            # See http://framework.zend.com/manual/en/zend.search.lucene.index-creation.html#zend.search.lucene.index-creation.optimization.maxmergedocs
            max_merge_docs: 10000 # (default: PHP_INT_MAX)

            # Merge factor (Optional)
            # See http://framework.zend.com/manual/en/zend.search.lucene.index-creation.html#zend.search.lucene.index-creation.optimization.mergefactor
            merge_factor: 10

            # Index directory permission (Optional)
            # See http://framework.zend.com/manual/en/zend.search.lucene.index-creation.html#zend.search.lucene.index-creation.permissions
            permissions: 0777

            # Auto optmized flag (Optional)
            # If this flag is true, each time you request an index, it will be optmized
            # See http://framework.zend.com/manual/en/zend.search.lucene.index-creation.html#zend.search.lucene.index-creation.optimization
            auto_optimized: false

            # Query parser encoding (Optional)
            # See http://framework.zend.com/manual/en/zend.search.lucene.searching.html#zend.search.lucene.searching.query_building.parsing
            query_parser_encoding: "UTF-8" # (default: "")
```

2. For each entities you want to be indexed, you will have to add the "Lpi\\Bundle\\SearchBundle\\Model\\IndexableInterface" an entity need to have these 4 methods:
    - getId()
    - getTitle()
    - getSlug()
    - getDescription()
3. in app/config/config.yml

```
    lpi_search:
        mappings:
            - { value: ApplicationLpiEventBundle:Event , path: programmation_detail} #name of the entity you want to be indexed
```

Usage
-----

[](#usage)

Now you have all indexes registered and you want to uses them, really easy!

in a controller for example :

```
/**
 * @param Request $request
 * @return array
 * @Route("/search", name="path_search")
 * @Template()
 * @Method({"GET", "POST"})
 */
public function searchAction(Request $request) {
    $results = null;
    if ($request->request->has('term') and '' !== $request->request->get('term')) {
        $results = $this->get('lpi_lucene.search')->search($request->request->get('term'));
    }

    return array(
        'results' => $results
    );
}
```

and the render in your view for example:

```
{% if results is defined and results|length > 0 %}
    {% for result in results %}

                {{ result.title }}

    {% endfor %}
{% else %}
    {{ 'search.result.nothing'|trans({}, 'messages') }}
{% endif %}

```

###  Health Score

28

—

LowBetter than 52% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity16

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 96.7% 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 ~1 days

Total

8

Last Release

4078d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/6907da42cacca30c3ba36b3e2196de3200a46ff30b5f55dd3269f35fe4a7e815?d=identicon)[DavidPuleri](/maintainers/DavidPuleri)

![](https://www.gravatar.com/avatar/d3f43ab3151b8a42c63d68597a9987afa8845c790d382840d4aa984eb3c2ab70?d=identicon)[jguido](/maintainers/jguido)

---

Top Contributors

[![C0d3-Russ](https://avatars.githubusercontent.com/u/632894?v=4)](https://github.com/C0d3-Russ "C0d3-Russ (29 commits)")[![DavidPuleri](https://avatars.githubusercontent.com/u/2221195?v=4)](https://github.com/DavidPuleri "DavidPuleri (1 commits)")

---

Tags

lpi zend lucene search

### Embed Badge

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

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

###  Alternatives

[egeloen/lucene-search-bundle

Provides a zend lucene search integration for your Symfony2 Project.

3047.1k3](/packages/egeloen-lucene-search-bundle)[awesome-nova/dependent-filter

Dependent filters for Laravel Nova

26193.1k](/packages/awesome-nova-dependent-filter)[algolia/php-dom-parser

A simple tool to turn DOM into Algolia search friendly record objects.

181.8k](/packages/algolia-php-dom-parser)

PHPackages © 2026

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