alejandroakbal/laravel-scout-advanced-meilisearch
Laravel Scout extension adding advanced query builder filters (comparisons, grouped where/orWhere, between, notIn) plus two compatible drivers: meilisearch_advanced for better Meilisearch filtering/total counts and collection_advanced for in-memory testing.
search(), toSearchableArray(), forceSync()), reducing boilerplate for search-heavy applications.config('scout.meilisearch')) and minimal adjustments to existing search logic.attributesForFaceting, searchableAs). Misconfigurations could lead to poor search relevance or performance. Risk: Teams unfamiliar with Meilisearch may need training or documentation.HasSearchable trait, Searchable models, and ScoutServiceProvider.toSearchableArray()).docker run -p 7700:7700 getmeilisearch/meilisearch).MEILISEARCH_HOST, MEILISEARCH_KEY).config/scout.php to use the meilisearch driver:
'driver' => env('SCOUT_DRIVER', 'meilisearch'),
php artisan vendor:publish --provider="Alejandroakbal\LaravelScoutAdvancedMeilisearch\MeilisearchServiceProvider"
HasSearchable and define toSearchableArray().searchableAs, attributesForFaceting):
use Alejandroakbal\LaravelScoutAdvancedMeilisearch\HasAdvancedSearchable;
class Product extends Model implements HasAdvancedSearchable
{
public function toSearchableArray()
{
return [
'title' => $this->title,
'description' => $this->description,
];
}
public function searchableAs()
{
return 'products';
}
public function toMeilisearchArray()
{
return [
'facets' => ['category', 'price_range'],
];
}
}
$results = Product::search('query')->meilisearch()->get();
search(), cursor(), paginate(), and forceSync().typoTolerance parameter.toMeilisearchArray().rankingRules for relevance tuning.searchableAs and toMeilisearchArray.php artisan scout:import "App\Models\Product").searchableAs for performance).meilisearch backup CLI).search endpoint for bottlenecks (e.g., large `attributesHow can I help you explore Laravel packages today?