PHP code example of amrsoliman / laralastica

1. Go to this page and download the library: Download amrsoliman/laralastica library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

amrsoliman / laralastica example snippets


"michaeljennings/laralastica": "1.2.*"

'providers' => array(

	'Michaeljennings\Laralastica\LaralasticaServiceProvider'

);

'aliases' => array(

  'Laralastica' => 'Michaeljennings\Laralastica\Facades\Laralastica',

);

'index' => 'yourindex',
'host' => 'localhost',
'port' => 9200,
'url' => 'https://user:[email protected]/',

'types' => [
	'testType' => 'App\TestType'
]

use Illuminate\Database\Eloquent\Model;
use Michaeljennings\Laralastica\Searchable;

class Foo extends Model {
	
	use Searchable;

}

public function getSearchType()
{
	return 'foo';
}

public function getSearchKey()
{
	return $this->key;
}
 
public function getIndexableAttributes()
{
	return [
		'foo' => $this->bar,
	];
}

public function getSearchDataTypes()
{
	return [
		'price' => 'float',
		'active' => 'bool',
		'quantity' => 'int',
		'name' => 'string'
	];
}

Foo::search(function(Builder $query) {

	$query->matchAll();

}, 'foo', 'bar')->get();

Foo::search(function(Builder $query) {

	$query->match('foo', 'bar')->must();
	$query->term('bar', 'baz')->should();
	$query->wildcard('baz', 'qux*')->mustNot();

})->get();

Foo::where('foo', 'bar')->search(function(Builder $query) {

	$query->match('foo', 'bar');

})->orderBy('baz')->get();

class Foo {
	public function __construct(Michaeljennings\Laralastica\Contracts\Wrapper $laralastica)
	{
		$this->laralastica = $laralastica;
	}

	public function foo()
	{
		$laralastica = Laralastica::search();
		// sort search  from elasticsearch fields
		  $sort = array('created__at' => array('order' => 'asc'));
		  $laralastica->setSortFields($sort);

		$laralastica = app('laralastica');
	}
}
}

$laralastica->search('foo', function($q)
{
	$q->matchAll();
});

$laralastica->search(['foo', 'bar], function($q)
{
	$q->matchAll();
});

Foo::search(function(Builder $query)
{
	$query->match('foo', 'bar');
	$query->match('foo', 'bar', 'phrase', false);
});

Foo::search(function(Builder $query)
{
	$query->multiMatch(['foo', 'bar'], 'The Quick Brown Fox');
	$query->multiMatch(['foo', 'bar'], 'The Quick Brown Fox', 'phrase', true);
	$query->multiMatch(['foo', 'bar'], 'The Quick Brown Fox', 'best_fields', true, 0.5);
	$query->multiMatch(['foo', 'bar'], 'The Quick Brown Fox', 'cross_fields', true, 0.0, 'or');
});

Foo::search(function(Builder $query)
{
	$query->matchAll();
})

Foo::search(function(Builder $query)
{
    $query->exists('FieldName');
});

Foo::search(function(Builder $query)
{
	$query->common('foo', 'bar');
	$query->common('foo', 'bar', 0.001-, true);
})

Foo::search(function(Builder $query)
{
	$range = [
		'gt' => 3,
		'lt' => 10
	];

	$query->range('foo', $range);
});

Foo::search(function(Builder $query)
{
	$range => [
		'gte' => '1970-01-01',
		'lte' => '1970-01-31'
	];

	$query->range('foo', $range, '+1:00', 'yyyy-mm-dd');
});

Foo::search(function(Builder $query)
{
    $query->regexp('foo', 'b.*r');
});

Foo::search(function(Builder $query)
{
    $query->term('foo', 'bar', 2.0);
});

Foo::search(function(Builder $query)
{
    $query->terms('foo', ['foo', 'bar', 'baz'], 2);
});

Foo::search(function(Builder $query)
{
    $query->wildcard('foo', 'ba*');
});