目录 一、实战场景 二、知识点 PHP Elasticsearch 索引 index MySQL 三、菜鸟实战 一、实战场景 如何在 PHP 中使用 elasticsearch 的索引 api 接口 二、知识点 php Elas
目录
如何在 PHP 中使用 elasticsearch 的索引 api 接口
Elasticsearch 本质上是一个数据库,但并不是 mysql 这种关系型数据库,查询语言也不是 sql,而是 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://blog.csdn.net/qq_39816613/article/details/128043337
--结束END--
本文标题: PHP 如何使用 Elasticsearch 的 索引 API 接口
本文链接: https://www.lsjlt.com/news/387020.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0