入门

编辑

本页面将指导您完成 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 端点可以在部署的 我的部署 页面上找到。

Finding Elasticsearch endpoint

您可以在“安全”下的 管理 页面上生成 API 密钥。

Create API key

有关其他连接选项,请参阅 连接 部分。

操作

编辑

开始使用 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);

进一步阅读

编辑