2017 © Pedro Peláez
 

library elasticsuit

Eloquent ORM encapsulation of Elasticsearch for Laravel

image

yong/elasticsuit

Eloquent ORM encapsulation of Elasticsearch for Laravel

  • Tuesday, September 19, 2017
  • by Yongcheng
  • Repository
  • 1 Watchers
  • 2 Stars
  • 4 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 3 Versions
  • 0 % Grown

The README.md

Laravel ElasticSuit

Total Downloads Latest Stable Version Latest Unstable Version License, (*1)

This is a package to integrate Elasticsearch to Laravel5, (*2)

It makes you do Elasticsearch just using Eloquent's API., (*3)

Installation

  1. Require this package with composer:
composer require yong/elasticsuit dev-master
  1. Add service provider to config/app.php
Yong\ElasticSuit\Service\Provider;
  1. Add elasticsearch node configuration to the "connections" node of config/database.php
        'elasticsearch' => [
            'hosts'=>['127.0.0.1:9200'],
            'ismultihandle'=>0,
            'database'=> 'db*',
            'prefix' => '',
            'settings'=> ['number_of_shards'=>2,'number_of_replicas'=>0]
        ],

Usage

  1. Define a model for a elasticsearch type

class TestModel extends \Yong\ElasticSuit\Elasticsearch\Model { protected $connection = 'elasticsearch'; protected $table = 'testmodel'; //relations public function Childmodel () { return $this->hasOne(OtherModel::class, '_id'); } }
  1. Create a new document

$testmodel = new TestModel(); $testmodel->first_name = 'firstname'; $testmodel->last_name = 'lastname'; $testmodel->age = 20; $testmodel->save();
  1. Search a collection
$collection = TestModel::where('first_name', 'like', 'firstname')
    ->whereIn('_id', [1,2,3,4,5])
    ->whereNotIn('_id', [5,6,7,8,9])
    ->where('_id', '=', 1)
    ->where('age', '>', 18)
    ->orWhere('last_name', 'like', 'lastname')
    ->whereNull('nick_name')
    ->whereNotNull('age')
    ->whereMultMatch(['last_name', 'description'], 'search words', '60%')
    ->skip(10)
    ->forPage(1, 20)
    ->take(10)
    ->limit(10)
    ->select(['first_name', 'last_name', 'age'])
    ->get();

* also support sum(), avg(), min(), max(), stats(), count()
* but not for all fields, only numeric fields can use aggregate

  1. Relations It also support relations, but remember so far just support using default _id as primary key.
    //get relations
    TestModel::with('childmodel')->where('first_name', 'like', 'firstname')->get();

License

And of course:, (*4)

MIT: http://rem.mit-license.org, (*5)

The Versions

19/09 2017

dev-master

9999999-dev

Eloquent ORM encapsulation of Elasticsearch for Laravel

  Sources   Download

MIT

The Requires

 

by Yongcheng Chen

orm laravel eloquent elasticsearch

19/09 2017

dev-laravel5.2-elasticsearch

dev-laravel5.2-elasticsearch

Eloquent ORM encapsulation of Elasticsearch for Laravel

  Sources   Download

MIT

The Requires

 

by Yongcheng Chen

orm laravel eloquent elasticsearch

08/12 2016

5.2

5.2.0.0

Eloquent ORM encapsulation of Elasticsearch for Laravel

  Sources   Download

MIT

The Requires

 

by Yongcheng Chen

orm laravel eloquent elasticsearch