<?php
require 'vendor/autoload.php';
use Elasticsearch\ClientBuilder;
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
// 主机
$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'
],
// .... 其他节点配置
];
// 日志
$logger = new Logger('name');
$logger->pushHandler(new StreamHandler('error.log', Logger::WARNING));
// HTTP处理器
// 默认HTTP处理器是一个组合型处理器,同步模式,执行单个curl请求,异步模式切换到执行多个curl请求
$defaultHandler = ClientBuilder::defaultHandler();
// 单个处理器
$singleHandler = ClientBuilder::singleHandler();
// 多个处理器
$multiHandler = ClientBuilder::multiHandler();
// 连接池, 连接池中的每个连接代表集群中的一个节点
$connectionPool = '\Elasticsearch\ConnectionPool\StaticNoPingConnectionPool';
// 连接选择器, 连接池用于管理与集群的连接,而连接选择器则是用来决定你的API请求要使用连接池中哪个连接
$selector = '\Elasticsearch\ConnectionPool\Selectors\StickyRoundRobinSelector';
// 序列化器,将PHP对象序列化为JSON, 同时还可以将JSON反序列化为数组
$serializer = '\Elasticsearch\Serializers\SmartSerializer';
// 实例化 ClientBuilder
$client = ClientBuilder::create()
// 设置主机信息
->setHosts($hosts)
// 设置重试次数,默认情况下,会重试n次,n等于集群的节点数,只有操作结果发生了严重的异常才会触发重试
// 如连接被拒绝、连接超时、DNS超时等等。4**和5**系列不被认为是可重试事件,因为节点已经返回来操作响应
->setRetries(2)
// 设置日志
->setLogger($logger)
// 设置HTTP Handler
->setHandler($defaultHandler)
// 设置连接池
->setConnectionPool($connectionPool)
// 设置连接选择器
->setSelector($selector)
// 设置序列化器
->setSerializer($serializer)
// 构建客户端对象
->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版】设置序列化器setSerializer
原创深漂小码哥 ©著作权
文章标签 Elasticsearch 文章分类 Java 后端开发
-
hutool PEM 格式读取
目录当我们打开电源后计算机发生了什么?常用命令文件系统文件类型文件属性常见的文件扩展名当我们打开电源后计算机发生了什么?我们在打开电源后,最先启动的并不是Linux系统本身。首先,计算机会寻找在ROM芯片(保存计算机最基本的输入输出系统 BIOS以及开机自检,自启动程序的芯片)上的程序BIOS(Basic Input Output System),它从CMOS芯片(保存计算机基本信息
hutool PEM 格式读取 hutool 读取扩展名文件 linux 磁盘分区 linux启动jar包命令 linux启动mysql服务命令