二、ElasticSearch - PHP 操作 ES 客户端配置

作者: 温新

分类: 【Elasticsearch】

阅读: 1543

时间: 2023-02-22 08:01:11

hi,我是温新,一名 PHPer

ES 版本:ElasticSearch 8.6.0

系统版本:Rocky Linux 9.1

学习目标:学会 PHP 操作 ES 的客户端配置

本篇文章结合官方文档编写及参考网络资料编写,虽非全部原创,但也是结合了自己的理解,若转载请附带本文 URL,编写不易,持续编写更不易,谢谢!

PHP 连接 ES 客户端主要是通过 ClientBuilder 工具类完成,其连接客户端的常用配置如下:

  • Elasticsearch 连接地址
  • Elasticsearch 认证账号和密码
  • 请求重试次数

配置格式 1

// 配置多个 ES 服务地址,支持多种类型的地址
$hosts = [
    '192.168.1.1:9200',         // IP + Port
    '192.168.1.2',              // 仅 IP
    'mydomain.server.com:9201', // 域名 + Port
    'mydomain2.server.com',     // 仅 域名
    'https://localhost',        // https协议格式
    'https://192.168.1.3:9200',  // https协议格式
    // 支持设置 ES 连接的账号和密码
    'https://username:password@test.com:9200/elastic'
];

$client = ClientBuilder::create()           // 创建 ClientBuilder
                    ->setHosts($hosts)      // 设置 hosts
                    ->build();              // 构建client对象

配置格式 2

// 每一个 ES 服务地址,是一个数组,支持配置详细的连接信息
hosts = [
    // 等价连接地址: "https://username:password!#$?*abc@test.com:9200/elastic"
    [
        'host' => 'foo.com', // 域名
        'port' => '9200', // 端口
        'scheme' => 'https', // 协议
        'path' => '/elastic', // path
        'user' => 'username', // 账号
        'pass' => 'password!#$?*abc' // 密码
    ],

    // 等价连接地址 "http://localhost:9200/"
    [
        'host' => 'localhost',    // 仅配置域名
    ]
];

$client = ClientBuilder::create()           // 创建 ClientBuilder对象
                    ->setHosts($hosts)      // 设置 hosts
                    ->build();              // 构建client对象

请求重试次数

$client = ClientBuilder::create()
                    ->setRetries(2) // 设置连接请求次数为2
                    ->build();
请登录后再评论