PHP 如何使用 Elasticsearch 的 索引别名 API 接口
原创
©著作权归作者所有:来自51CTO博客作者程序员汪伦的原创作品,请联系作者获取转载授权,否则将追究法律责任
实战场景
如何在 PHP 中使用 Elasticsearch 的索引别名 API 接口
知识点
- PHP
- Elasticsearch
- 索引 index
- 索引别名 index alias
索引别名是给一个或者多个索引定义另外一个名称,使索引和索引别名之间可以建立某种逻辑关系,
以方便在不同索引之间进行统一操作。
菜鸟实战
基础环境准备可参考之前文章。
创建索引别名
发送创建索引别名请求
PHP// 创建索引别名 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); } |
创建索引别名返回结果
JSON{ "code": 0, "message": "ok", "data": { "es_info": { "acknowledged": true } } } |
查询索引详情
发送查询请求
PHP// 查询索引别名 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); } |
响应结果
JSON{ "code": 0, "message": "ok", "data": { "es_info": { "test": { "aliases": { "test_alias": [] } } } } } |
删除索引别名
发送删除索引别名请求
PHP// 删除索引别名 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); } |
响应结果
JSON{ "code": 0, "message": "ok", "data": { "es_info": { "acknowledged": true } } } |
通过上述步骤,就将 php 与 Elasticsearch 索引连通了,接下来就可以应用到具体的业务当中。