احسان رضایی

یک توسعه دهنده

جستجوی تمام متن با لاراول اسکات Laravel Scout

در laravel , / تاریخ ارسال 09-11-1401 / 0 نظر / آخرین ویرایش 27-01-1403

جستجوی تمام متن با لاراول اسکات Laravel Scout

 

لاراول اسکات / 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()

 

 

پیشنهاد

کتاب‌ها

کتاب الگوهای طراحی به بیان ساده(design patterns / دیزاین پترن)

در مهندسی نرم افزار، design patterns(الگوهای طراحی) راه حل‌های قابل استفاده برای مشکلاتی هستند که معمولاً در طراحی نرم‌افزار اتفاق می افتند.

طرح های از پیش ساخته شده‌ای که می‌توانید برای حل مشکلات آن‌ها را سفارشی کنید. شما نمی‌توانید یک الگو را با جستجو در stackoverflow پیدا و در برنامه خود کپی کنید. الگو ها یک قطعه کد خاص نیستند، مفاهیم کلی برای حل مشکلات خاص هستند. شما باید با درک این مفاهیم آن‌ها را در برنامه خود پیاده‌سازی کنید.

کتاب refactoring / ریفکتورینگ

Refactoring مجموعه‌ای از تکنیک‌هاست که به منظور اصلاح و بهبود کدهای قبلی بدون تغییر در عملکرد و رفتارشان جهت خوانایی، کارامدی و قابلیت نگهداری بیشتر انجام می‌شود.

در کتاب Refactoring اثر Martin Fowler نوشته شده: refactoring تکنیک مرتب/منظم سازی برای تجدید ساختار کد موجود است. تغییر ساختار داخلی کد بدون تغییر رفتار خارجی آن.

refactoring یک سرمایه‌گذاری و راه حلی برای مقابله با کد کثیف و بدهی فنی است که باعث کاهش هزینه‌های توسعه نرم‌افزار در آینده خواهد شد.

ارسال نظر