1cool / elasticsearch
使用SQL语句查询elasticsearch
1.0.2
2019-12-17 10:11 UTC
Requires
- php: >=7.0
- elasticsearch/elasticsearch: ~6.0
- illuminate/support: ^5.3|^6.0
README
版本矩阵
安装
您可以通过composer安装此包
composer require 1cool/elasticsearch
Laravel
如果您想在配置文件中进行配置更改,可以使用以下Artisan命令发布
php artisan vendor:publish --provider="CrCms\ElasticSearch\LaravelServiceProvider"
快速入门
创建
Route::get('test/create',function(\CrCms\ElasticSearch\Builder $builder){ $result = $builder->index('index')->type('type')->create([ 'key' => 'value', ]); dump($result); });
更新
Route::get('test/create',function(\CrCms\ElasticSearch\Builder $builder){ $result = $builder->index('index')->type('type')->update('id',[ 'key' => 'value2', ]); dump($result); });
删除
Route::get('test/create',function(\CrCms\ElasticSearch\Builder $builder){ $result = $builder->index('index')->type('type')->delete('id'); dump($result); });
选择
Route::get('test/create',function(\CrCms\ElasticSearch\Builder $builder){ $builder = $builder->index('index')->type('type'); //SQL:select ... where id = 1 limit 1; $result = $builder->whereTerm('id',1)->first(); //SQL:select ... where (key=1 or key=2) and key1=1 $result = $builder->where(function (Builder $inQuery) { $inQuery->whereTerm('key',1)->orWhereTerm('key',2) })->whereTerm('key1',1)->get(); });
更多
跳过 / 取回
$builder->take(10)->get(); // or limit(10) $builder->offset(10)->take(10)->get(); // or skip(10)
词项查询
$builder->whereTerm('key',value)->first();
匹配查询
$builder->whereMatch('key',value)->first();
范围查询
$builder->whereBetween('key',[value1,value2])->first();
WHERE IN查询
$builder->whereIn('key',[value1,value2])->first();
逻辑查询
$builder->whereTerm('key',value)->orWhereTerm('key2',value)->first();
嵌套查询
$result = $builder->where(function (Builder $inQuery) { $inQuery->whereTerm('key',1)->orWhereTerm('key',2) })->whereTerm('key1',1)->get();
可用条件
public function select($columns): self
public function where($column, $operator = null, $value = null, $leaf = 'term', $boolean = 'and'): self
public function orWhere($field, $operator = null, $value = null, $leaf = 'term'): self
public function whereMatch($field, $value, $boolean = 'and'): self
public function orWhereMatch($field, $value, $boolean = 'and'): self
public function whereTerm($field, $value, $boolean = 'and'): self
public function whereIn($field, array $value)
public function orWhereIn($field, array $value)
public function orWhereTerm($field, $value, $boolean = 'or'): self
public function whereRange($field, $operator = null, $value = null, $boolean = 'and'): self
public function orWhereRange($field, $operator = null, $value = null): self
public function whereBetween($field, array $values, $boolean = 'and'): self
public function orWhereBetween($field, array $values): self
public function orderBy(string $field, $sort): self
public function scroll(string $scroll): self
public function aggBy($field, $type): self
public function select($columns): self
结果方法
public function get(): Collection
public function paginate(int $page, int $perPage = 15): Collection
public function first()
public function byId($id)
public function byIdOrFail($id): stdClass
public function chunk(callable $callback, $limit = 2000, $scroll = '10m')
public function create(array $data, $id = null, $key = 'id'): stdClass
public function update($id, array $data): bool
public function delete($id)
public function count(): int
日志
//open log $builder->enableQueryLog(); //all query log dump($build->getQueryLog()); //last query log dump($build->getLastQueryLog());
Elastisearch对象
getElasticSearch() // or search()