krisanalfa/ductible

Laravel 和 ElasticSearch 和谐共存。

0.0.2 2016-06-24 09:36 UTC

This package is auto-updated.

Last update: 2024-08-29 03:18:06 UTC


README

Ductible 是一个 Laravel 包,提供中级 Elastic Search 客户端。

安装

您可以通过 composer 命令行安装 ductible

composer install krisanalfa/ductible

配置

在配置中注册 DuctibleServiceProvider

'providers' => [
    // ...

    Zeek\Ductible\DuctibleServiceProvider::class,
],

可选

在配置中注册 Facade 别名

'aliases' => [
    // ...

    'Ductible' => Zeek\Ductible\Facades\Ductible::class,
],

发布配置

默认情况下,您可以在 Elasticsearch 运行在 http://localhost:9200 的情况下使用 Ductible,无需配置。如果您需要不同的设置,您可能需要发布 Ductible 配置并对它进行一些更改

php artisan vendor:publish --provider="Zeek\Ductible\DuctibleServiceProvider"

配置说明

您可以在内联文档中阅读。它目前支持许多 Elasticsearch 客户端配置方面,例如

  • host(最常见的配置是告知客户端有关您的集群的信息。下面将说明如何配置多个主机。)。
  • retries(当客户端用尽重试次数时,它将抛出它接收到的最后一个异常。)。
  • log(存储您的 elasticsearch 日志的位置。)。
  • handler(Elasticsearch-PHP 使用一个可交换的 HTTP 传输层,称为 RingPHP。您可以在此处自定义您的处理器。)。
  • pool(连接池是客户端中的一个对象,负责维护当前节点列表。)。
  • selector(连接池管理对您的集群的连接。)。
  • serializer(响应序列化器。)
  • client.ignores(库尝试为常见问题抛出异常。这些异常与 Elasticsearch 提供的 HTTP 响应代码匹配。)
  • client.verbose(如果您需要更多信息,您可以告诉客户端返回更详细的结果。)。

您可以通过在 env 文件中配置来设置多个主机,如下所示

ELASTICSEARCH_HOSTS="localhost:9200|192.168.1.10:9200|http://myserver.com:9200"

使用方法

基础

Ductible 提供低级客户端交互,您可以探索尽可能多的内容。

索引文档

$result = Ductible::index([
    'index' => 'myIndex',
    'type' => 'myType',
    'id' => 1,
    'body' => [
        'fieldFoo' => 'Foo',
        'fieldBar' => 'Bar',
        'fieldBaz' => 'Baz',
    ],
]);

获取文档索引

$index = Ductible::get([
    'index' => 'myIndex',
    'type' => 'type',
    'id' => 1,
]); // The result is an array

更新文档索引

$result = Ductible::index([
    'index' => 'myIndex',
    'type' => 'myType',
    'id' => 1,
    'body' => [
        'fieldFoo' => 'Foo Foo',
        'fieldBar' => 'Bar Bar',
        'fieldBaz' => 'Baz Baz',
    ],
]);

删除文档索引

$index = Ductible::delete([
    'index' => 'myIndex',
    'type' => 'type',
    'id' => 1,
]); // The result is an array

搜索

$result = Ductible::search($searchParams);

批量索引文档

$result = Ductible::bulk($searchParams);

使用 Eloquent

待定

待办事项

  • 在 Ductible 主类中根据 eloquent 模型分离索引操作
  • 更多单元测试