مارک پلاس

تکنولوژی نوین اینترنتی

Laravel Scout جستجوی پیشرفته

دسته‌بندی‌ها

Laravel Scout جستجوی پیشرفته
Laravel Scout جستجوی پیشرفته


Laravel Scout یک پکیج رسمی لاراول است که برای جستجو و ایندکس کردن مدل‌ها در دیتابیس استفاده می‌شود. این پکیج از موتورهای جستجو مانند Algolia، Meilisearch و Elasticsearch پشتیبانی می‌کند و به شما این امکان را می‌دهد که جستجوهای پیچیده و سریع‌تری را در اپلیکیشن‌های لاراولی خود پیاده‌سازی کنید.

ویژگی‌های اصلی Laravel Scout:

  1. جستجوی سریع: Scout به شما این امکان را می‌دهد که جستجوهایی سریع و مقیاس‌پذیر انجام دهید. جستجو در حجم بالای داده‌ها به‌راحتی انجام می‌شود.

  2. یکپارچگی با مدل‌ها: Scout به‌طور مستقیم با مدل‌های لاراول کار می‌کند، بنابراین شما می‌توانید ویژگی‌های جستجو را به راحتی به مدل‌ها اضافه کنید.

  3. پشتیبانی از ایندکس کردن مدل‌ها: شما می‌توانید مدل‌ها را ایندکس کرده و سپس جستجو در آن‌ها را از طریق موتور جستجوی انتخابی خود انجام دهید.

  4. سهولت در پیاده‌سازی: Scout به‌طور ویژه برای سادگی طراحی شده است و می‌توانید تنها با چند خط کد مدل‌های خود را قابل جستجو کنید.


🛠️ نحوه استفاده از Laravel Scout

1. نصب Laravel Scout

برای نصب Scout ابتدا باید پکیج آن را به پروژه خود اضافه کنید:

bash
composer require laravel/scout

پس از نصب پکیج، فایل تنظیمات Scout را با دستور زیر منتشر کنید:

bash
php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider" --tag="scout-config"

این دستور یک فایل تنظیمات scout.php در پوشه config ایجاد می‌کند که می‌توانید موتور جستجوی مورد نظر خود را در آن تنظیم کنید.

2. تنظیمات موتور جستجو

در فایل config/scout.php شما می‌توانید موتور جستجو را تنظیم کنید. برای مثال اگر از Algolia استفاده می‌کنید، باید کلید API و کدهای مربوط به آن را وارد کنید:

php
'driver' => env('SCOUT_DRIVER', 'algolia'),

برای سایر موتورهای جستجو مانند Meilisearch یا Elasticsearch، باید تنظیمات مربوطه را وارد کنید.

3. ساخت مدل قابل جستجو

برای اینکه مدل‌هایتان قابل جستجو شوند، باید ویژگی Searchable را به مدل خود اضافه کنید. برای مثال اگر یک مدل Post دارید، آن را به این صورت قابل جستجو کنید:

php
use Laravel\Scout\Searchable; class Post extends Model { use Searchable; // سایر ویژگی‌های مدل }

4. ایندکس کردن داده‌ها

پس از اعمال ویژگی Searchable به مدل، می‌توانید مدل‌ها را ایندکس کنید. برای این کار از دستور scout:import استفاده کنید:

bash
php artisan scout:import "App\Models\Post"

این دستور تمام داده‌های مدل Post را در موتور جستجو ایندکس می‌کند.

5. جستجو در مدل‌ها

برای جستجو در مدل‌های ایندکس شده می‌توانید از متد search استفاده کنید. برای مثال برای جستجو در مدل Post:

php
$posts = Post::search('عنوان جستجو')->get();

این دستور تمام پست‌هایی را که با عبارت جستجو تطابق دارند باز می‌گرداند.

6. افزودن داده‌ها به ایندکس

زمانی که شما یک مدل جدید ایجاد می‌کنید یا یک مدل را به‌روزرسانی می‌کنید، داده‌ها به طور خودکار به ایندکس موتور جستجو افزوده می‌شود. برای افزودن دستی یک مدل به ایندکس می‌توانید از متد updateIndex استفاده کنید:

php
$post->updateIndex();

همچنین برای حذف مدل از ایندکس:

php
$post->deleteIndex();

📊 ویژگی‌های دیگر Laravel Scout

  1. فیلتر کردن جستجوها: با Scout می‌توانید از فیلترهای پیچیده در جستجو استفاده کنید. به عنوان مثال، می‌توانید نتایج جستجو را بر اساس شرایط خاص محدود کنید.

  2. جستجوی Full-text: با استفاده از موتور جستجو، Scout امکان جستجوی کامل متن را فراهم می‌کند، که به شما این امکان را می‌دهد تا متنی را در تمامی فیلدهای مدل جستجو کنید.

  3. جستجوی آفلاین: در صورتی که به موتور جستجوی آنلاین دسترسی ندارید، می‌توانید Scout را برای جستجوی آفلاین نیز پیکربندی کنید.

  4. پشتیبانی از جستجوی فازی: بسیاری از موتورهای جستجو پشتیبانی از جستجوی فازی را فراهم می‌کنند. این ویژگی به شما این امکان را می‌دهد که حتی اگر املای جستجو به درستی وارد نشود، نتایج مربوطه را بیابید.

  5. پشتیبانی از دستورات پیچیده جستجو: شما می‌توانید از دستورات پیچیده‌تری برای جستجو استفاده کنید مانند جستجو بر اساس معیارهای خاص، یا ترتیب دادن نتایج بر اساس معیارهای مختلف.


مزایای استفاده از Laravel Scout

  • یکپارچگی کامل با لاراول: Scout به‌طور کامل با لاراول یکپارچه شده است، بنابراین استفاده از آن بسیار ساده است و نیازی به تنظیمات پیچیده ندارید.

  • پشتیبانی از موتورهای جستجوی مختلف: شما می‌توانید از موتورهای مختلف مانند Algolia، Elasticsearch، و Meilisearch استفاده کنید.

  • سهولت در استفاده: با استفاده از ویژگی‌های ساده‌ای مانند searchable و search، می‌توانید جستجوهای پیچیده را به راحتی پیاده‌سازی کنید.

  • عملکرد بالا: Scout با موتورهای جستجو مقیاس‌پذیر مانند Algolia و Elasticsearch عملکرد بالایی ارائه می‌دهد.

  • جستجوی کامل متن: Scout از جستجوی کامل متن پشتیبانی می‌کند که می‌توانید جستجو را در تمامی فیلدهای مدل خود انجام دهید.


🛠️ جمع‌بندی

Laravel Scout ابزاری قدرتمند برای جستجو در مدل‌ها و ایندکس کردن داده‌ها در اپلیکیشن‌های لاراولی است. این پکیج امکان جستجوهای سریع و پیچیده را فراهم می‌آورد و از موتورهای جستجو مانند Algolia، Meilisearch و Elasticsearch پشتیبانی می‌کند. Scout با استفاده از PHP به شما این امکان را می‌دهد که جستجوهایی بدون نیاز به کدنویسی JavaScript پیچیده در اپلیکیشن‌های خود داشته باشید.

محتوای مرتبط

پست‌های مرتبط