Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 

README.md

ElasticsearchBundle Build Status

Integration of the Elasticsearch official PHP client within a Symfony Project.

Features

This bundle creates one or more Elasticsearch client services from settings defined in the application configuration.

Usage

Installation

You must first add the bundle to your composer.json:

    "require": {
        "m6web/elasticsearch-bundle": "dev-master"
    }

Then register the bundle in your AppKernel class:

<?php
    public function registerBundles()
    {
        $bundles = array(
            // ...
            new M6Web\Bundle\ElasticsearchBundle\M6WebElasticsearchBundle(),
        );
        // ...
    }

Configuration

In your config.yml, you can configure one or more Elasticsearch clients:

m6web_elasticsearch:
    default_client: my_client
    clients:
        my_client:
            hosts:
                - 'localhost:9200'
                - 'http://other_host:9201'
        my_other_client:
            hosts:
                - 'other_server:9200'

From this configuration, the bundle will create two services :

  • m6web_elasticsearch.client.my_client that will connect to two Elasticsearch instances: localhost on port 9200 and other_host on port 9201
  • m6web_elasticsearch.client.my_other_client that will connect to one Elasticsearch instances: other_server on port 9200

It will also create m6web_elasticsearch.client.default which is an alias for m6web_elasticsearch.client.my_client

Additional configuration

Each client can have additional configuration parameters that will be used to instantiate the \Elasticsearch\Client. Ex:

m6web_elasticsearch:
    clients:
        my_client:
            hosts:
                - 'https://username:password@localhost:9200'
            headers:
                'Accept-Encoding': ['gzip']
            retries: 2
            logger: monolog.logger.custom
            connectionPoolClass: '\Elasticsearch\ConnectionPool\StaticConnectionPool'
            selectorClass: '\Elasticsearch\ConnectionPool\Selectors\RandomSelector'
            connectionParams:
                client:
                    timeout: 3
                    connect_timeout: 1

Events

The bundle dispatches \M6Web\Bundle\ElasticsearchBundle\EventDispatcher\ElasticsearchEvent events containing various information about the Elasticsearch requests.

Events are fired with the name m6web.elasticsearch.

Tests

You can launch the unit tests using:

./vendor/bin/atoum

License

ElasticsearchBundle is licensed under the MIT license.

About

Integration of the Elasticsearch official PHP client within a Symfony Project

Resources

License

You can’t perform that action at this time.