اسکات (Laravel Scout) پکیجی از اکوسیستم لاراول است که قابلیت جستوجوی تماممتن را به مدلهای Eloquent اضافه میکند. اسکات با Driverهای جستوجوی مختلف کار میکند و برای همگام نگه داشتن Index جستوجو با تغییر مدلها، از Observer استفاده میکند.
نصب اسکات
composer require laravel/scout
php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider"
فعالسازی برای مدل محصول
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Laravel\Scout\Searchable;
class Product extends Model {
use Searchable;
public function toSearchableArray(): array {
return ['id' => $this->id, 'name' => $this->name];
}
}
$products = Product::search('laptop')->get();
انتخاب موتور جستوجو
بسته به Driver و نسخه لاراول، میتوان از موتور مبتنی بر دیتابیس یا سرویسهایی مانند Algolia، Meilisearch و Typesense استفاده کرد. انتخاب به امکانات رتبهبندی، حجم داده، هزینه و قابلیت راهاندازی بستگی دارد. بعضی موتورهای بیرونی به سرویس و پکیج جداگانه نیاز دارند.
برای دیتابیس چه زمانی کافی است؟
برای فروشگاه کوچک، جستوجوی دیتابیسی شاید کافی باشد. در پروژه بزرگ با خطای تایپی، Facet و Ranking پیچیده، موتور تخصصی جستوجو ارزش بررسی دارد.
مطالعه مرتبط: الوکوئنت، جستوجوی معنایی و ایندکسینگ.