اسکات (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 پیچیده، موتور تخصصی جست‌وجو ارزش بررسی دارد.

مطالعه مرتبط: الوکوئنت، جست‌وجوی معنایی و ایندکسینگ.