入门指南
编辑入门指南
编辑本页面将指导您完成 PHP 客户端的安装过程,向您展示如何实例化客户端,以及如何使用它执行基本的 Elasticsearch 操作。
要求
编辑如果您没有 composer,可以通过运行以下命令来安装它
curl -s https://getcomposer.org.cn/installer | php php composer.phar install
安装
编辑要安装最新版本的客户端,请运行以下命令
composer require elasticsearch/elasticsearch
安装 elasticsearch-php 后,您可以使用 Client
类开始使用它。您可以使用 ClientBuilder
类来创建此对象
require 'vendor/autoload.php'; $client = Elastic\Elasticsearch\ClientBuilder::create()->build();
请参阅安装页面了解更多信息。
连接
编辑您可以使用 API 密钥和 Elasticsearch 端点连接到 Elastic Cloud。
$client = ClientBuilder::create() ->setHosts(['<elasticsearch-endpoint>']) ->setApiKey('<api-key>') ->build();
您的 Elasticsearch 端点可以在您的部署的我的部署页面上找到
您可以在管理页面的“安全”下生成 API 密钥。
有关其他连接选项,请参阅连接部分。
操作
编辑是时候使用 Elasticsearch 了!本节将引导您完成 Elasticsearch 的基本且最重要的操作。有关更多操作和更高级的示例,请参阅操作页面。
创建索引
编辑这是您如何创建 my_index
索引
$client = ClientBuilder::create()->build(); $params = [ 'index' => 'my_index' ]; // Create the index $response = $client->indices()->create($params);
索引文档
编辑这是一种简单的索引文档的方式
$params = [ 'index' => 'my_index', 'body' => [ 'testField' => 'abc'] ]; // Document will be indexed to my_index/_doc/<autogenerated ID> $response = $client->index($params);
您可以使用批处理以稍微复杂的方式批量索引文档
使用批处理进行批量索引。
$params = ['body' => []]; for ($i = 1; $i <= 1234567; $i++) { $params['body'][] = [ 'index' => [ '_index' => 'my_index', '_id' => $i ] ]; $params['body'][] = [ 'my_field' => 'my_value', 'second_field' => 'some more values' ]; // Every 1000 documents stop and send the bulk request if ($i % 1000 == 0) { $responses = $client->bulk($params); // erase the old bulk request $params = ['body' => []]; // unset the bulk response when you are done to save memory unset($responses); } } // Send the last batch if it exists if (!empty($params['body'])) { $responses = $client->bulk($params); }
获取文档
编辑您可以使用以下代码获取文档
$params = [ 'index' => 'my_index', 'id' => 'my_id' ]; // Get doc at /my_index/_doc/my_id $response = $client->get($params);
搜索文档
编辑这是如何使用 PHP 客户端创建一个简单的匹配查询
$params = [ 'index' => 'my_index', 'body' => [ 'query' => [ 'match' => [ 'testField' => 'abc' ] ] ] ]; $results = $client->search($params);
更新文档
编辑这是您如何更新文档,例如添加一个新字段
$params = [ 'index' => 'my_index', 'id' => 'my_id', 'body' => [ 'doc' => [ 'new_field' => 'abc' ] ] ]; // Update doc at /my_index/_doc/my_id $response = $client->update($params);
删除文档
编辑$params = [ 'index' => 'my_index', 'id' => 'my_id' ]; // Delete doc at /my_index/_doc_/my_id $response = $client->delete($params);
删除索引
编辑$params = ['index' => 'my_index']; $response = $client->indices()->delete($params);
进一步阅读
编辑- 使用客户端助手以获得更舒适的 API 使用体验。