目录
一、实战场景
如何在 PHP 中使用 Elasticsearch 的索引别名 API 接口
二、知识点
-
PHP
-
Elasticsearch
-
索引 index
-
索引别名 index alias
索引别名是给一个或者多个索引定义另外一个名称,使索引和索引别名之间可以建立某种逻辑关系,以方便在不同索引之间进行统一操作。
三、菜鸟实战
基础环境准备可参考之前文章。
创建索引别名
发送创建索引别名请求
// 创建索引别名
public function aliasCreate(Request $request){
// 获取索引名称
$indexName = $request->get("index_name");
$indexAliasName = $request->get("index_alias_name");
// 确定参数
$params = [
'index' => $indexName,
'name' => $indexAliasName,
];
// 执行
$client = EsHelper::getEsClient();
try {
$response = $client->indices()->putAlias($params);
$result = $response->asArray();
}catch (\Exception $e){
$result = $e->getMessage();
}
// 返回
$data = [
'es_info' => $result,
];
$this->success($data);
}
创建索引别名返回结果
{
"code": 0,
"message": "ok",
"data": {
"es_info": {
"acknowledged": true
}
}
}
查询索引详情
发送查询请求
// 查询索引别名
public function aliasList(Request $request){
// 获取索引名称
$index = $request->get("index");
$aliasName = $request->get("alias_name");
$params = [];
if(!empty($index)){
$params['index'] = $index;
}
if(!empty($aliasName)){
$params['name'] = $aliasName;
}
// 执行
$client = EsHelper::getEsClient();
try {
$response = $client->indices()->getAlias($params);
$result = $response->asArray();
}catch (\Exception $e){
$result = $e->getMessage();
}
// 返回
$data = [
'es_info' => $result,
];
$this->success($data);
}
响应结果
{
"code": 0,
"message": "ok",
"data": {
"es_info": {
"test": {
"aliases": {
"test_alias": []
}
}
}
}
}
删除索引别名
发送删除索引别名请求
// 删除索引别名
public function aliasDelete(Request $request){
// 获取索引名称
$index = $request->get("index");
$aliasName = $request->get("alias_name");
$params = [];
$params['index'] = $index;
$params['name'] = $aliasName;
// 执行
$client = EsHelper::getEsClient();
try {
$response = $client->indices()->deleteAlias($params);
$result = $response->asArray();
}catch (\Exception $e){
$result = $e->getMessage();
}
// 返回
$data = [
'es_info' => $result,
];
$this->success($data);
}
响应结果
{
"code": 0,
"message": "ok",
"data": {
"es_info": {
"acknowledged": true
}
}
}
通过上述步骤,就将 php 与 Elasticsearch 索引连通了,接下来就可以应用到具体的业务当中。