pedromdev/elasticsearch-module

Zend Framework 2 Module for Elasticsearch

v1.0.2 2017-03-05 22:41 UTC

This package is not auto-updated.

Last update: 2024-04-27 20:39:43 UTC


README

Build Status Scrutinizer Code Quality Coverage Status

Integration between the Elasticsearch-PHP client and Zend Framework 2

Installation

The installation is made through Composer. Add the dependency in your composer.json:

{
    "require": {
        "pedromdev/elasticsearch-module": "~1.0"
    }
}

Then run command for installation:

php composer.phar install --no-dev

Or run update command if you already have an installation:

php composer.phar update --no-dev

After Composer install all dependencies, add ElasticsearchModule to your application.config.php:

<?php

return [
    'modules' => [
        'ElasticsearchModule',
    ],
];

ElasticsearchModule services and configurations

Note: These services and configurations are based on the DoctrineModule/DoctrineORMModule services and configurations.

Services

Registered services

  • elasticsearch.loggers.default: an \ArrayObject instance with \Psr\Log\LoggerInterface instances. Each instance is associated to a key in loggers configuration;
  • elasticsearch.handler.default: default middleware callable;
  • elasticsearch.connection_factory.default: an \Elasticsearch\Connections\ConnectionFactoryInterface instance;
  • elasticsearch.connection_pool.default: an \Elasticsearch\ConnectionPool\AbstractConnectionPool instance;
  • elasticsearch.transport.default: an \Elasticsearch\Transport instance;
  • elasticsearch.endpoint.default: default callable to retrieve an \Elasticsearch\Endpoints\AbstractEndpoint instances. Its only parameter is an endpoint class name (e.g., Get, Bulk, Delete);
  • elasticsearch.client.default: an \Elasticsearch\Client instance;
  • Elasticsearch\Client: an alias of elasticsearch.client.default.

Usage

<?php

$client = $serviceLocator->get('elasticsearch.client.default');
$client = $serviceLocator->get('Elasticsearch\Client');

Configuration

Create a config/autoload/elasticsearch.global.php file with the below content:

<?php

return [
    'elasticsearch' => [
        'connection_pool' => [
            'default' => [
                'hosts' => [
                    'http://localhost:9200', // string based
                    'http://username:password@localhost:9200', // if you have an authentication layer
                    [
                        'scheme' => 'http', // associative array based
                        'host' => 'localhost',
                        'port' => 9200,
                        'user' => 'username', // if you have an authentication layer
                        'pass' => 'password',
                    ],
                ],
            ],
        ],
    ],
];