标签:index request 别名 索引 API Elasticsearch result params PHP
实战场景
如何在 PHP 中使用 Elasticsearch 的索引别名 API 接口
知识点
- PHP
- Elasticsearch
- 索引 index
- 索引别名 index alias
索引别名是给一个或者多个索引定义另外一个名称,使索引和索引别名之间可以建立某种逻辑关系,
以方便在不同索引之间进行统一操作。
![图片 PHP 如何使用 Elasticsearch 的 索引别名 API 接口_elasticsearch](/i/li/?n=2&i=images/blog/202211/28201341_6384a5f59d5d227296.png?,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=,x-oss-process=image/resize,m_fixed,w_1184)
菜鸟实战
基础环境准备可参考之前文章。
创建索引别名
发送创建索引别名请求
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 如何使用 Elasticsearch 的 索引别名 API 接口_elasticsearch_02](/i/li/?n=2&i=images/blog/202211/28201341_6384a5f58e77791677.png?,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=,x-oss-process=image/resize,m_fixed,w_1184)
查询索引详情
发送查询请求
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 如何使用 Elasticsearch 的 索引别名 API 接口_elasticsearch_03](/i/li/?n=2&i=images/blog/202211/28201341_6384a5f5aa53b21436.png?,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=,x-oss-process=image/resize,m_fixed,w_1184)
删除索引别名
发送删除索引别名请求
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 索引连通了,接下来就可以应用到具体的业务当中。
标签:index,
request,
别名,
索引,
API,
Elasticsearch,
result,
params,
PHP
From: https://blog.51cto.com/u_15872204/5893640