<?php

require 'vendor/autoload.php';

use Elasticsearch\ClientBuilder;

$hosts = [
    // 第一个节点配置
    [
        'host' => 'localhost', // 必填项
        'port' => 9200, // 不设置,默认9200,
        'scheme' => 'http', // 不设置, 默认http
        'user' => 'elastic',
        'pass' => '123456'
    ],
    [
        'host' => '192.169.1.103', // 必填项
        'port' => 9300, // 不设置,默认9200,
        'scheme' => 'http', // 不设置, 默认http
        'user' => 'elastic',
        'pass' => '123456'
    ],
    // .... 其他节点配置
];

// 实例化 ClientBuilder
$client = ClientBuilder::create()
// 设置主机信息
->setHosts($hosts)
// 设置重试次数,默认情况下,会重试n次,n等于集群的节点数,只有操作结果发生了严重的异常才会触发重试
// 如连接被拒绝、连接超时、DNS超时等等。4**和5**系列不被认为是可重试事件,因为节点已经返回来操作响应
->setRetries(2)
// 构建客户端对象
->build();


$params = [
    'index' => 'test',
];

try {
    // get 查询
    $response = $client->indices()->get($params);


    if (is_array($response)) {
        echo json_encode($response);
    } else {
        echo $response;
    }

} catch (\Exception $e) {
    print_r($e->getMessage());
}




【Elasticsearch PHP版】设置重试次数setRetries_连接超时