jibe84/elasticsearch-second-bundle

基于 elasticsearch/elasticsearch-php 的 Symfony2 Bundle,m6web/elasticsearch-bundle 的副本

安装: 11

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 19

类型:symfony-bundle

v1.5.0 2017-02-03 14:04 UTC

This package is not auto-updated.

Last update: 2024-09-23 14:21:55 UTC


README

在 Symfony 项目中集成 Elasticsearch 官方 PHP 客户端

复制自 M6Web/ElasticsearchBundle

功能

此 Bundle 根据应用程序配置中的设置创建一个或多个 Elasticsearch 客户端服务。

使用方法

安装

首先必须在您的 composer.json 中添加该 Bundle

    "require": {
        "jibe84/elasticsearch-second-bundle": "dev-master"
    }

然后在您的 AppKernel 类中注册该 Bundle

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

配置

在您的 config.yml 中,您可以配置一个或多个 Elasticsearch 客户端

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

从该配置,Bundle 将创建两个服务

  • m6web_elasticsearch.client.my_client 将连接到两个 Elasticsearch 实例:端口 9200 的 localhost 和端口 9201 的 other_host
  • m6web_elasticsearch.client.my_other_client 将连接到一个 Elasticsearch 实例:端口 9200 的 other_server

它还将创建 m6web_elasticsearch.client.default,它是 m6web_elasticsearch.client.my_client 的别名

附加配置

每个客户端都可以有额外的配置参数,这些参数将用于实例化 \Elasticsearch\Client。例如

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

事件

该 Bundle 分发包含有关 Elasticsearch 请求的各个信息的 \M6Web\Bundle\ElasticsearchSecondBundle\EventDispatcher\ElasticsearchEvent 事件。

事件以 m6web.elasticsearch 的名称触发。

测试

您可以使用以下方式启动单元测试

./vendor/bin/atoum

许可证

ElasticsearchSecondBundle 在 MIT 许可证 下授权。