iboxs/elasticsearch

ElasticSearch 类似ORM访问开发包

1.0.0 2022-07-13 06:02 UTC

This package is auto-updated.

Last update: 2024-04-13 10:28:18 UTC


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文件为入口文件)