krisanalfa / ductible
Laravel 和 ElasticSearch 和谐共存。
0.0.2
2016-06-24 09:36 UTC
Requires
- doctrine/dbal: ^2.5
- elasticsearch/elasticsearch: ~2.2
- laravel/laravel: ~5.1
Requires (Dev)
- fzaninotto/faker: ^1.6
- phpunit/phpunit: ^5.4
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 模型分离索引操作
- 更多单元测试