codeduck/elasticsearch

简洁的Elasticsearch客户端

v0.5 2021-03-28 02:50 UTC

This package is auto-updated.

Last update: 2024-08-29 05:37:23 UTC


README

latest stable version license php version codecov infection unit tests psalm elasticsearch

简洁的Elasticsearch客户端

起源于对现有客户端包依赖地狱的挫败感。我不需要拥有所有功能的库,因此产生了这个包。它提供索引、删除和查询文档的最基本功能。

此库与Elasticsearch 6.x和7.x兼容,并且不依赖于官方的Elasticsearch客户端包。

所有问题应提交到GitHub问题跟踪器

功能

  • 将文档添加到Elasticsearch索引
  • 从Elasticsearch索引中删除文档
  • 将多个添加和删除操作作为批量操作发送
  • 在Elasticsearch索引上运行查询

用法

use CodeDuck\Elasticsearch\Client;
use CodeDuck\Elasticsearch\SimpleClient;
use Symfony\Component\HttpClient\HttpClient;

$client = new SimpleClient(
    new Client(HttpClient::create(), 'http://127.0.0.1:9200'),
    'my-index', '_doc'
);

$client->begin();
$client->add('ID-123', ['name' => 'foo', 'foo' => 12345]);
$client->add('ID-234', ['name' => 'bar', 'foo' => 12345]);
$client->commit();

$result = $client->query(['query' => ['term' => ['name' => 'bar']]]);

foreach ($result->getDocuments() as $document) {
    echo json_encode($document->getSource(), JSON_THROW_ON_ERROR) . PHP_EOL;
}

$client->begin();
$client->delete('ID-123');
$client->delete('ID-234');
$client->commit();

更详细的示例可以在以下位置找到: 完整客户端简单客户端

待办事项

  • 完成文档
  • 操作应返回Elasticsearch的响应,特别是对于批量操作
  • 调查服务器URL中除用户名和密码之外进行身份验证的选项(必要?)