首页 > 编程语言 >PHP 如何使用 Elasticsearch 的 索引别名 API 接口

PHP 如何使用 Elasticsearch 的 索引别名 API 接口

时间:2022-11-28 20:35:26浏览次数:52  
标签:index request 别名 索引 API Elasticsearch result params PHP

实战场景

如何在 PHP 中使用 Elasticsearch 的索引别名 API 接口

知识点

  • PHP
  • Elasticsearch
  • 索引 index
  • 索引别名 index alias


索引别名是给一个或者多个索引定义另外一个名称,使索引和索引别名之间可以建立某种逻辑关系,

以方便在不同索引之间进行统一操作。

PHP 如何使用 Elasticsearch 的 索引别名 API 接口_elasticsearch


菜鸟实战

基础环境准备可参考之前文章。

创建索引别名

发送创建索引别名请求

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


查询索引详情

发送查询请求

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


删除索引别名

发送删除索引别名请求

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

相关文章

  • .NET6之MiniAPI(十九):NLog
    在本系例文章的第八篇中,我们聊过官方的日志实现,即《.NET6之MiniAPI(八):日志》。但官方的日志功能更多是提供了一个实现基础,对于要求一个灵活,强大,方便的日志体系,官方的还是有......
  • php复习
    第1章一、填空题1.在Apache的bin目录下,可用于查看Apache版本的命令是“httpd-v”2.Apache的主配置文件的文件名是httpd.f3.Apache配置加载模块使用的指令是LoadModule......
  • 【2022-11-28】Docker部署搭建Yapi
    一、环境准备1.准备一台虚拟机\或者购买服务器2.虚拟机硬件要求2.1内存2-4G2.2CPU2核2G2.3硬盘至少20G3.系统镜像 centos7.9二、安装docker#......
  • 关于ThinkPHP中URL及模板文件名大小写的讨论
    参考:​​ThinkPHP3.2.3完全开发手册——URL模式​​​​TP模板因路径大小写获取不到的Bug​​特别地,需要注意的是:调试模式下URL区分大小写;非调试模式下URL不区分大小写。当......
  • Linux中Web环境memcached和redis安装(FOR PHP)
    目录​​目录​​​​前言​​​phpmemcached扩展安装​​​服务器端安装​​​​客户端安装​​​设置memcached开机自启脚本​​​创建脚本​​​​设置服务​​​​服务......
  • Linux中Web环境安装php的扩展
    目录文章目录​​目录​​​​前言​​​​安装imagick扩展​​​​安装ImageMagick​​​​安装php扩展imagick​​​​安装PDO扩展​​​​安装PDO组件​​​​安装PDO_MY......
  • 如何构建 API 生态促进企业上下游合作
    构建API生态是互联网趋势技术变革推动API数量爆发式增长互联网在这10多年里,已经经历了多次的技术变革:2010年以前,还是比较传统的开发模式。单体架构,自己开发大部分的......
  • Api——LocalDateTime
    publicclassTest3_LocalDateTime{publicstaticvoidmain(String[]args){//0、获取本地日期和时间对象。不可变对象LocalDateTimeldt=LocalDateTime.now();......
  • JAVA-API概述-Scanner类键盘录入数据
    代码一packagecom.itheima.api;importjava.util.Scanner;publicclassDemo1Scanner{/*next():遇到了空格,就不再录入数据了结......
  • 运行tensorflow出现This TensorFlow binary is optimized with oneAPI Deep Neural Ne
    ThisTensorFlowbinaryisoptimizedwithoneAPIDeepNeuralNetworkLibrary(oneDNN)tousethefollowingCPUinstructionsinperformance-criticaloperations:......