Hyperf框架安装elasticsearch8协程客户端
公司最近需要用到es做商品搜素,使用的elasticsearch8.6.1,但hyperf官方提供的elasticsearch客户端截至目前只支持到7。es8以后的客户端与es7有较大改动,且es8的部分特性es7版的客户端支持不友好,所以用wo_orld/hyperf-elasticsearch,支持elasticsearch/elasticsearch最新版本
- 安装wo_orld/hyperf-elasticsearch
composer require wo_orld/hyperf-elasticsearch
- 发布elasticsearch配置文件
php bin/hyperf.php vendor:publish wo_orld/hyperf-elasticsearch
- 配置elasticsearch.php
<?php
return [
// 索引前缀
'prefix' => env('ES_PREFIX', env('APP_NAME')),
// 对应logger.php下的配置,置空则不写日志
'logger' => [
'local' => 'default',
'test' => '',
'production' => '',
],
// 节点地址,多个节点使用|分隔 例如 http://127.0.0.1:9201|http://127.0.0.1:9202
'hosts' => env('ES_HOSTS', 'http://127.0.0.1:9200'),
'username' => env('ES_USERNAME', 'elastic'),
'password' => env('ES_PASSWORD', ''),
];
- 开始使用
<?php
use World\HyperfElasticsearch\ElasticsearchClientBuilderFactory;
// 如果在协程环境下创建,则会自动使用协程版的 Handler,非协程环境下无改变
$builder = $this->container->get(ElasticsearchClientBuilderFactory::class)->create();
$client = $builder->build();
$info = $client->info();