iboxs / elasticsearch
ElasticSearch 类似ORM访问开发包
1.0.0
2022-07-13 06:02 UTC
Requires
- php: >=7.2
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- elasticsearch/elasticsearch: ~7.0
- iboxs/redis: 1.0.*
- illuminate/support: ^5.3|^6.0|^7.0|^8.0
- ramsey/uuid: ^4.1
README
安装/Install
composer require iboxs/elasticsearch
支持ElasticSearch版本
more than 7.0
使用方法
PHP原生
//require elasticsearch config $config = require "elasticsearch.php"; //instance $builder = Factory::builder($config);
基于Laravel框架
请将以下配置写入 config/app.php
'providers' => [ Iboxs\ElasticSearch\Laravel\ElasticsearchOrm\OrmProvider::class, ]
使用以下代码初始化
$builder = app(\Iboxs\ElasticSearch\Builder::class);
其他框架
- 作者因没时间再维护,目前就只支持laravel框架使用,若需其他框架,可根据laravel框架写法自行改写,若有疑问,可联系作者QQ320587491
快速开始
Create
$builder->index('index')->create(['key' => 'value']); //return collection $builder->index('index')->createCollection(['key' => 'value']);
Update
$builder->index('index')->update(['key' => 'value']) : bool
Delete
$builder->index('index')->delete($id) : bool
Select
//select one $builder->index('index')->first(); //select all $builder->index('index')->get(); //select with paginate $builder->index('index')->paginate($page, $size) : Collection //select by id $builder->byId($id) : stdClass //select by id if failed throw error $builder->byIdOrFail($id) : stdClass //select chunk $builder->chunk(callback $callback, $limit = 2000, $scroll = '10m')
Count
$builder->count() : int
Condition
whereTerm
$builder->whereTerm('key', 'value');
whereLike(wildcard)
//value without add wildcard '*' $builder->whereLike('key', 'value');
match
$builder->whereMatch('key', 'value');
range
$builder->whereBetween('key', ['value1', 'value2']);
where in
$builder->whereIn('key', ['value1', 'value2', ...]);
nested
$builder->where(function(Builder $query){ $query->whereTerm('key', 'value'); });
查询布尔运算标识
['=' => 'eq','>' => 'gt','>=' => 'gte','<' => 'lt','<=' => 'lte','!=' => 'ne',]
$builder->where('key', '=', 'value');
更多
请自行查阅源代码(Client文件为入口文件)