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();