لاراول اسکات / Laravel Scout ابزاری برای قابلیت جستجوی تمام متن(full-text search) در مدل هاست. از درایور هایی مانند Algolia، Meilisearch و خود database لاراول(در حال حاضر MySQL یا PostgreSQL) پشتیانی میکنه.
با یک مثال ساده نصب و استفاده از Scout رو ادامه میدم، فرض کنید جدولی به نام contents با فیلدهای id, title, abstract و text داریم که محتوای وبسایت شما رو در بر میگیره.
نصب لاراول اسکات / Laravel Scout
ابتدا با استفاده از کامپورز و دستور زیر لاراول اسکات رو نصب میکنیم.
composer require laravel/scout
سپس با artisan vendor:publish فایل پیکربندی اسکات رو به پوشه config اضافه میکنیم.
php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider"
فایل پیکربندی رو باز کنید. (config/scout.php)
همونطور که میبینید driver به طور پیشفرض algolia ست شده. در این مثال تصمیم دارم از PostgreSQL استفاده کنم پس داخل .env مقدار SCOUT_DRIVER رو database قرار میدم. تمام!
SCOUT_DRIVER=database
استفاده از لاراول اسکات / Laravel Scout
در مدل Content تریت Laravel\Scout\Searchable رو اضافه کنید.
use Laravel\Scout\Searchable;
class Content extends Model
{
use Searchable;
//...
حالا با تعریف متد toSearchableArray پیکربندی داده های قابل جستجو رو تعریف میکنیم. در این متد مشخص میشه چه فیلدهایی قابل جستجو باشن.
public function toSearchableArray()
{
return [
'id' => (int) $this->id,
'title' => $this->title,
'abstract' => $this->abstract,
'text' => $this->text,
];
}
در نهایت، با استفاده از متد search قابلیت full-text search برای ما فراهم میشه.
$search = 'ehsan';
Content::search($search)->get()
لاراول