一架梯子,一头程序猿,仰望星空!

php elasticsearch连接配置


php的elasticsearch连接配置主要通过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@foo.com:9200/elastic'
];

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

ES连接地址详解:

schema://username:password@host:port/path

参数说明:

  • schema - http协议类型,支持http和https
  • username - 账号
  • password - 密码
  • host - 域名或者ip地址
  • port - 端口号
  • path - url路径

ES连接地址例子

https://admin:123456@foo.com:9200/elastic

格式2

支持详细的配置Elasticsearch信息,支持配置账号和密码

// 每一个ES服务地址,是一个数组,支持配置详细的连接信息
hosts = [
    // 等价连接地址: "https://username:password!#$?*abc@foo.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();