pskordilakis / elastin
Elasticsearch 查询构建器
v0.1.12
2019-04-17 16:48 UTC
Requires
- php: ^7.2
- ext-json: *
Requires (Dev)
- phpstan/phpstan: ^0.10.6
- phpstan/phpstan-phpunit: ^0.10
- phpunit/phpunit: ^7.5.0
README
Elasticsearch 查询构建器。旨在与 elasticsearch-php 官方客户端一起使用。
安装
composer require pskordilakis/elastin
用法
创建构建器实例
use Elastin\Builder; $builder = Builder::create();
设置索引/索引
$builder->index('index_1')
或
$builder->indices(['index_2', 'index_3']);
添加布尔查询
支持的布尔查询:必须、过滤器、必须非、应该
$builder->filter('term', [ 'tag' => 'search' ]);
聚合
向查询添加简单聚合
$builder->aggregation('aggregation_name', [ 'aggregation_type' => $aggregation_body ]);
支持通过定义点分隔的名称进行嵌套聚合
$builder->aggregation('parent_aggregation_path.aggregation_name', [ 'aggregation_type' => $aggregation_body ]);
构建查询
构建方法返回查询的数组表示形式,可以传递给 elasticsearch-php 客户端。
$query = $builder->build(); $client->search($query);
别名
提供了一些常见情况的别名。
聚合别名可以通过在名称参数中传递点分隔的路径用作嵌套聚合。
位置
定义一个词项过滤器
$builder->where($field, $value);
WhereBetween
定义一个范围过滤器
$builder->whereBetween($field, $gte, $lte);
计数
创建一个值计数聚合
$builder->count($name, $field);
基数
创建一个基数聚合
$builder->cardinality($name, $field);
分组
创建一个词项聚合
$builder->groupBy($name, $field);
时间序列
创建一个日期直方图聚合
$builder->timeSeries($name, $field, $options);