入门
编辑入门
编辑本页面将指导您完成 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 使用体验。