2017 © Pedro Peláez
 

library laravel-scout-elastic

Elastic Driver for Laravel Scout

image

crasmedia/laravel-scout-elastic

Elastic Driver for Laravel Scout

  • Friday, February 10, 2017
  • by crasmedia
  • Repository
  • 2 Watchers
  • 5 Stars
  • 222 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 139 Forks
  • 0 Open issues
  • 6 Versions
  • 7 % Grown

The README.md

Laravel Scout Elasticsearch Driver

Software License, (*1)

This package makes is the Elasticsearch driver for Laravel Scout., (*2)

Contents

Installation

You can install the package via composer:, (*3)

``` bash composer require Crasmedia/laravel-scout-elastic, (*4)


You must add the Scout service provider and the package service provider in your app.php config: ```php // config/app.php 'providers' => [ ... Laravel\Scout\ScoutServiceProvider::class, ... ScoutEngines\Elasticsearch\ElasticsearchProvider::class, ],

Setting up Elasticsearch configuration

You must have a Elasticsearch server up and running with the index you want to use created, (*5)

If you need help with this please refer to the Elasticsearch documentation, (*6)

After you've published the Laravel Scout package configuration:, (*7)

// config/scout.php
// Set your driver to elasticsearch
    'driver' => env('SCOUT_DRIVER', 'elasticsearch'),

...
    'elasticsearch' => [
        'index' => env('ELASTICSEARCH_INDEX', 'laravel'),
        'hosts' => [
            env('ELASTICSEARCH_HOST', 'http://localhost'),
        ],
    ],
...

Usage

Now you can use Laravel Scout as described in the official documentation, (*8)

Custom modifications

You can create/delete your own indexes and put custom mappings on it, (*9)

$index = config('scout.elasticsearch.index');

// Check if index exists
if($model->searchableUsing()->exists($index))
{
    // Delete index if exists
    $model->searchableUsing()->deleteIndex($index);
}

// Create new index
$model->searchableUsing()->createIndex($index);

// Put custom mapping
$mappings = $model->mapping();
$model->searchableUsing()->putMapping($index, $model->getTable(), $mappings);

For using the custom mapping just add a mapping function to your model, (*10)

public function mapping()
{
    $mapping = [
        'title' => [
            'type' => 'keyword'
        ]
    ];

    return $mapping;
}

Boost

If you wanna boost some fields, just add a boosts variable to your model, (*11)

protected $boosts = [
    'title' => 2
];

More information on elastic site, (*12)

Sort

Just use the eloquent order by function, (*13)

Model::search('')->orderBy('title', 'asc')->get()

Credits

License

The MIT License (MIT)., (*14)

The Versions

10/02 2017

3.0.x-dev

3.0.9999999.9999999-dev

Elastic Driver for Laravel Scout

  Sources   Download

The Requires

 

The Development Requires

laravel elasticsearch elastic scout

10/02 2017

3.0.2

3.0.2.0

Elastic Driver for Laravel Scout

  Sources   Download

The Requires

 

The Development Requires

laravel elasticsearch elastic scout

02/02 2017

3.0.1

3.0.1.0

Elastic Driver for Laravel Scout

  Sources   Download

The Requires

 

The Development Requires

laravel elasticsearch elastic scout

01/02 2017

3.0.0

3.0.0.0

Elastic Driver for Laravel Scout

  Sources   Download

The Requires

 

The Development Requires

laravel elasticsearch elastic scout

01/02 2017

2.0.0

2.0.0.0

Elastic Driver for Laravel Scout

  Sources   Download

The Requires

 

The Development Requires

laravel elasticsearch elastic scout

29/09 2016

1.0.1

1.0.1.0

Elastic Driver for Laravel Scout

  Sources   Download

The Requires

 

The Development Requires

laravel elasticsearch elastic scout