当前位置: 首页 > 后端技术 > PHP

像使用LaravelQuery一样搜索Elasticsearch

时间:2023-03-29 20:14:38 PHP

需要使用ES大数据引擎,无奈无论是官方包还是Github都找不到我想要的。.Github地址:https://github.com/crcms/elasticsearchComposer和安装和Laravel下的加载VersionMatrixElasticsearchVersioncrcms/elasticsearchBranch>=6.01.*>=5.0,<6.00.*Installcomposerrequirecrcms/elasticsearchLaravelModifyconfig/app.php'providers'=>[CrCms\ElasticSearch\LaravelServiceProvider::class,]Pubishphpartisanvendor:publish--provider="CrCms\ElasticSearch\LaravelServiceProvider"直接开始,示例如下:QuickstartCreateRoute::get('test/create',function(\CrCms\ElasticSearch\Builder$builder){$result=$builder->index('index')->type('type')->create(['key'=>'value',]);转储($result);});UpdateRoute::get('test/update',function(\CrCms\ElasticSearch\Builder$builder){$result=$builder->index('index')->type('type')->update('id',['key'=>'value2',]);dump($result);});DeleteRoute::get('test/delete',function(\CrCms\ElasticSearch\建造者$builder){$result=$builder->index('index')->类型('类型')->删除('id');dump($result);});SelectRoute::get('test/select',function(\CrCms\ElasticSearch\Builder$builder){$builder=$builder->index('index')->type('type');//SQL:select...whereid=1limit1;$result=$builder->whereTerm('id',1)->first();//SQL:select...where(key=1orkey=2)andkey1=1$result=$builder->where(function(Builder$inQuery){$inQuery->whereTerm('key',1)->orWhereTerm('key',2)})->whereTerm('key1',1)->get();});Moreskip/take$builder->take(10)->get();//或者limit(10)$builder->offset(10)->take(10)->get();//或者skip(10)termquery$builder->whereTerm('key',value)->first();matchquery$builder->whereMatch('key',value)->first();rangequery$builder->whereBetween('key',[value1,value2])->first();whereinquery$builder->whereIn('key',[value1,value2])->first();逻辑查询$builder->whereTerm('键',值)->orWhereTerm('key2',value)->first();嵌套查询$result=$builder->where(function(Builder$inQuery){$inQuery->whereTerm('key',1)->orWhereTerm('键',2)})->whereTerm('key1',1)->get();更多使用方法见Github末尾:如果对你有用请给个Star,更多欢迎拍砖,配套开源文章已与laravel-china同步