codeduck / elasticsearch
简洁的Elasticsearch客户端
v0.5
2021-03-28 02:50 UTC
Requires
- php: >=7.4.0
- ext-json: *
- symfony/http-client-contracts: ^2.0 || ^1.0
Requires (Dev)
- infection/infection: ^0.21
- phpunir/phpunit: ^9.1
- psalm/plugin-phpunit: ^0.15
- roave/security-advisories: dev-latest
- symfony/http-client: ^5.2
- vimeo/psalm: ^4.6
README
简洁的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中除用户名和密码之外进行身份验证的选项(必要?)