ulff/elasticsearch-php-client-bundle

用于将 Symfony2.x/3.x 与 Elasticsearch-PHP 5.0 集成的非常简单的组件

2.3.0 2018-03-07 11:21 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:26:13 UTC


README

设置组件

版本矩阵

您需要将 Elasticsearch 的版本与库的相应版本匹配。

步骤 1: 安装组件

使用 composer 安装组件

php composer.phar require "ulff/elasticsearch-php-client-bundle:2.0"

在 AppKernel.php 中启用组件

// app/AppKernel.php

public function registerBundles()
{
    $bundles = [
        // ...
        new Ulff\ElasticsearchPhpClientBundle\UlffElasticsearchPhpClientBundle(),
    ];

    // ...
}

步骤 2: 添加组件配置

将以下配置添加到 config.yml

# app/config/config.yml

ulff_elasticsearch_php_client:
    elastic_host: "localhost"
    elastic_port: "9200"

请将值替换为正确的值。

用法

客户端使用

Elasticsearch 客户端作为服务可用

$client = $this->get('ulff_elasticsearch_php_client.client');

创建新索引

$indexParams = new IndexParams('index-name', 'type-name', 'id');
$indexParams->setBody(['someField' => 'some value']);
$response = $client->index($indexParams);

返回 IndexResponse 对象。

获取文档

$getParams = new GetParams('index-name', 'type-name', 'id');
$response = $client->get($getParams);

返回 GetResponse 对象。

删除文档

$deleteParams = new DeleteParams('index-name', 'type-name', 'id');
$response = $client->delete($deleteParams);

返回 DeleteResponse 对象。

按查询删除

$deleteParams = new DeleteByQueryParams('index-name', 'type-name');
$deleteParams->setBody([
   'query' => [
       'match_all' => new \stdClass(),
   ]
]);
$response = $client->deleteByQuery($deleteParams);

返回 DeleteByQueryResponse 对象。

执行搜索查询

$searchParams = new SearchParams('index-name', 'type-name');
$searchParams->setBody([
    'query' => [
        'match' => [
            'someField' => 'some value'
        ]
    ]
]);
$response = $client->search($searchParams);

更新文档

$updateParams = new UpdateParams('index-name', 'type-name', 'id');
$updateParams->setBody(['someField' => 'some value']);
$response = $client->update($updateParams);

返回 UpdateResponse 对象。

清理器使用

组件提供了清除整个索引(通过删除并重新创建空索引)的可能性。这可以用于测试等目的。

提供了一个独立的 ulff_elasticsearch_php_client.purger 服务。以下示例展示了如何清除索引

$purger = $this->get('ulff_elasticsearch_php_client.purger');
$purger->purgeIndex('index_name');

完整文档

此组件是以下 Elasticsearch-PHP 版本的客户端:

请遵循那里的文档。

许可证

此组件采用 MIT 许可证。请参阅组件中的完整许可证 LICENSE 文件。