This package contains a factory method to create a Elasticsearch client from ruflin/elastica. The factory supports DSN to ease config with a dependency injection container.
composer require happyr/elastica-dsn
use Happyr\ElasticaDsn\ClientFactory;
$client = ClientFactory::create('elasticsearch://localhost');
$client = ClientFactory::create('elasticsearch:?host[localhost]&host[localhost:9201]&host[127.0.0.1:9202]');
$client = ClientFactory::create('elasticsearch://foo:bar@localhost:1234');
$client = ClientFactory::create('elasticsearch://localhost:9201', ['username' => 'foo', 'password' => 'bar']);
If you use Symfony service config:
services:
Elastica\Client:
factory: 'Happyr\ElasticaDsn\ClientFactory::create'
arguments: ['elasticsearch://localhost']
If you want to configure the client even more, you may just get the config array from the ClientFactory
and
instantiate the client yourself.
use Elastica\Client;
use Happyr\ElasticaDsn\ClientFactory;
$config = ClientFactory::getConfig('elasticsearch://localhost');
// Add more stuff to $config array
$client = new Client($config);