codewiser / laravel-meilisearch
Laravel helper for Meilisearch Scout driver
Installs: 63
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 1
Open Issues: 0
pkg:composer/codewiser/laravel-meilisearch
Requires
- php: ^8.0
- laravel/framework: >=10.0
- laravel/scout: >=10.0
- meilisearch/meilisearch-php: ^1.4
Suggests
- codewiser/laravel-scout: Helps building multidriver Scout searches
README
Laravel helper for Meilisearch Scout driver.
Out-of-the-box, we should configure Meiliserach index settings in config/scout.php
:
https://laravel.com/docs/10.x/scout#configuring-filterable-data-for-meilisearch
use App\Models\User; use App\Models\Flight; 'meilisearch' => [ 'host' => env('MEILISEARCH_HOST', 'http://localhost:7700'), 'key' => env('MEILISEARCH_KEY', null), 'index-settings' => [ User::class => [ 'filterableAttributes'=> ['id', 'name', 'email'], 'sortableAttributes' => ['created_at'], // Other settings fields... ], Flight::class => [ 'filterableAttributes'=> ['id', 'destination'], 'sortableAttributes' => ['updated_at'], ], ], ],
Using Attributes
:
class User extends \Illuminate\Database\Eloquent\Model { use \Laravel\Scout\Searchable; #[MeilisearchFilterableAttributes(['id', 'name', 'email'])] #[MeilisearchSortableAttributes(['created_at'])] public function toSearchableArray() { // } }
class Flight extends \Illuminate\Database\Eloquent\Model { use \Laravel\Scout\Searchable; #[MeilisearchFilterableAttributes(['id', 'destination'])] #[MeilisearchSortableAttributes(['updated_at'])] public function toSearchableArray() { // } }
Just enumerate searchable classes in config/scout.php
:
use App\Models\User; use App\Models\Flight; 'meilisearch' => [ 'host' => env('MEILISEARCH_HOST', 'http://localhost:7700'), 'key' => env('MEILISEARCH_KEY', null), 'searchable' => [User::class, Flight::class], ],
Console
Use scout:meilisearch-rebuild
command to completely rebuild Meilisearch
index.