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

这篇具有很好参考价值的文章主要介绍了PHP 如何使用 Elasticsearch 的 索引 API 接口。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、实战场景

二、知识点

PHP

Elasticsearch

索引 index

MySQL

三、菜鸟实战


一、实战场景

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

二、知识点

  • PHP

  • Elasticsearch

  • 索引 index

  • MySQL

Elasticsearch 本质上是一个数据库,但并不是 MySQL 这种关系型数据库,查询语言也不是 SQL,而是 Elasticsearch 自己的一套查询语言。既然是数据库,有一些概念是互通的,如下表:

php elasticsearch搜索接口,elasticsearch,php,elasticsearch,大数据

三、菜鸟实战

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

创建索引

发送创建请求

创建索引返回结果

PHP

// 创建索引

public function create(Request $request){

    // 获取索引名称

    $testIndex = $request->get("index_name", "test");


    // 执行

    $client = EsHelper::getEsClient();

    $params = [

        'index' => $testIndex,

    ];

    $response = $client->indices()->create($params);


    // 返回

    $data = [

        'es_info' => $response->asArray(),

    ];

    $this->success($data);

} 
JSON

{

    "code": 0,

    "message": "ok",

    "data": {

        "es_info": {

            "acknowledged": true,

            "shards_acknowledged": true,

            "index": "test"

        }

    }

} 

更加复杂的参数

可指定主分片个数:number_of_shards

可指定副分片个数:number_of_replicas

PHP

$params = [

    'index' => 'my_index',

    'body' => [

        'settings' => [

            'number_of_shards' => 3,

            'number_of_replicas' => 2

        ],

        'mappings' => [

            'my_type' => [

                '_source' => [

                    'enabled' => true

                ],

                'properties' => [

                    'first_name' => [

                        'type' => 'string',

                        'analyzer' => 'standard'

                    ],

                    'age' => [

                        'type' => 'integer'

                    ]

                ]

            ]

        ]

    ]

]; 

查询索引详情

发送查询请求

PHP

// 查询索引

public function detail(Request $request){

    // 获取索引名称

    $queryIndexName = $request->get("index_name", "test");

    $params = [

        'index' => $queryIndexName,

    ];

    // 执行

    $client = EsHelper::getEsClient();


    $result = "";

    try {

        $response = $client->indices()->get($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": {

            "test1": {

                "aliases": [],

                "mappings": [],

                "settings": {

                    "index": {

                        "routing": {

                            "allocation": {

                                "include": {

                                    "_tier_preference": "data_content"

                                }

                            }

                        },

                        "number_of_shards": "1",

                        "provided_name": "test1",

                        "creation_date": "1669179904968",

                        "number_of_replicas": "1",

                        "uuid": "Y62XH2Z4RC-kd2cKieOu9Q",

                        "version": {

                            "created": "8050199"

                        }

                    }

                }

            }

        }

    }

} 

更新索引

发送更新索引请求

PHP

// 更新索引

public function update(Request $request){

    // 获取索引名称

    $indexName = $request->get("index_name", "test");

    $number_of_replicas = $request->get("number_of_replicas", 1);


    // 确定参数

    $params = [

        'index' => $indexName,

        'body' => [

            'settings' => [

                'number_of_replicas' => $number_of_replicas,

            ]

        ]

    ];


    // 执行

    $client = EsHelper::getEsClient();

    try {

        $response = $client->indices()->putSettings($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 delete(Request $request){

    // 获取索引名称

    $indexName = $request->get("index_name", "test1");


    // 确定参数

    $params = [

        'index' => $indexName,

    ];


    // 执行

    $client = EsHelper::getEsClient();

    try {

        $response = $client->indices()->delete($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 的索引操作连通了,接下来就可以在索引上创建文档了。文章来源地址https://www.toymoban.com/news/detail-535668.html

到了这里,关于PHP 如何使用 Elasticsearch 的 索引 API 接口的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Elasticsearch本地单机配置以及php组件使用记录

     键值对模式 info 方法 $client-info();

    2024年01月17日
    浏览(48)
  • 【ElasticSearch】ElasticSearch Java API的使用——常用索引、文档、查询操作(二)

    Elaticsearch ,简称为es,es是一个开源的 高扩展 的 分布式全文检索引擎 ,它可以近乎 实时的存储 、 检索数据; 本身扩展性很好,可以扩展到上百台服务器,处理PB级别(大数据时代)的数据。es也使用java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的 目的

    2024年01月16日
    浏览(91)
  • PHP操作宝塔面板Api,宝塔服务器搭建,API接口使用教程

    最近两个月都在写Bty项目,所以收集了很多很多宝塔常用到的一些Api接口,官方文档虽然写了一点,但是始终是不怎么全的,下面我们来看看宝塔面板的接口如何抓取 接口抓取 1、登录宝塔面板 2、找到自己想要的功能 3、f12打开审查元素(控制台)切换到Network选项卡 上面的

    2024年02月06日
    浏览(54)
  • PHP 如何设计一个高安全的电商平台:淘宝/京东商品类API封装接口

    如何保证API接口安全 接口的安全性主要围绕Token、Timestamp和Sign三个机制展开设计,保证接口的数据不会被篡改和重复调用,下面具体来看: Token授权机制 :用户使用用户名密码登录后服务器给客户端返回一个Token(通常是UUID),并将Token-UserId以键值对的形式存放在缓存服务

    2024年02月09日
    浏览(58)
  • Elasticsearch Java API 的使用-更新索引(update & upset)与 Bulk的批量更新

    Java更新索引(update upset) update 更新使用UpdateRequest(update类型更新,只能更新) upset 要用IndexRequest设定添加文档,UpdateRequest设定更新文档,设定upset执行有则修改无则更新(upset类型更新,文档不存在时创建) 基于Bulk的批量更新(update upset) 动态的更新一个 documents 中的任

    2024年02月11日
    浏览(50)
  • ElasticSearch与PHP整合

    ElasticSearch是一个基于分布式的搜索和分析引擎,它可以提供实时的、可扩展的、高性能的搜索功能。PHP是一种广泛使用的服务器端脚本语言,它可以与ElasticSearch整合,以实现更高效的搜索功能。在本文中,我们将讨论ElasticSearch与PHP整合的核心概念、算法原理、最佳实践、应

    2024年02月20日
    浏览(34)
  • PHP 文心千帆API接口对接

    创建一个智能云应用。根据实际需求创建智能云应用。创建成功后,获取AppID、API Key、Secret Key 等信息。 API 授权。对应用的 AppID 进行授权。 获取接口访问凭证 access_token 。根据第1步获取的 API Key 和 Secret Key , 获取 access_token ,通过 access_token 鉴权调用者身份。 调用API接口。

    2024年02月11日
    浏览(43)
  • PHP elasticsearch 条件过滤、排序、高亮实现

    php在做搜索引擎时,进程要对结果进行筛选,所以我们这里记录一下elasticsearch 条件过滤、排序、高亮实现。在创建索引时如果使用了mapping映射,请将要过滤和排序的字段index设置为true ok,搞定! php写搜索时注意:多个筛选条件时,term、range外面还有一层[],高亮需指定字段,

    2023年04月21日
    浏览(37)
  • ES 10 - 如何使用Elasticsearch的索引模板(index template)

    本文转载自:ES 10 - 如何使用Elasticsearch的索引模板(index template) - 瘦风 - 博客园 索引模板: 就是把已经创建好的某个索引的参数设置(settings)和索引映射(mapping)保存下来作为模板, 在创建新索引时, 指定要使用的模板名, 就可以直接重用已经定义好的模板中的设置和映射. (1) sett

    2024年02月15日
    浏览(37)
  • Elasticsearch:从 ES|QL 到 PHP 对象

    作者:来自 Elastic Enrico Zimuel 从 elasticsearch-php v8.13.0 开始,你可以执行 ES|QL 查询并将结果映射到 stdClass 或自定义类的 PHP 对象。 ES|QL 是 Elasticsearch 8.11.0 中引入的一种新的 Elasticsearch 查询语言。 目前,它在技术预览版中可用。 它提供了一种强大的方法来过滤、转换和分析存

    2024年04月13日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包