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*');
});