التثبيت والتهيئة Elasticsearch بتنسيق Laravel

للتثبيت والتهيئة Elasticsearch ، Laravel اتبع الخطوات التالية:

الخطوة 1: التثبيت Elasticsearch

أولاً ، تحتاج إلى التثبيت Elasticsearch على الخادم الخاص بك أو استخدام Elasticsearch الخدمة السحابية مثل Elastic Cloud. قم بزيارة Elasticsearch الموقع الرسمي لتنزيل الإصدار المناسب واتبع تعليمات التثبيت.

الخطوة 2: التثبيت Elasticsearch Package لـ Laravel

بعد ذلك ، قم بتثبيت Elasticsearch الحزمة لـ Laravel. هناك حزم متنوعة تدعمها Elasticsearch ، Laravel لكن الحزمة الشائعة هي " Laravel Scout ". للتثبيت Laravel Scout ، افتح terminal الأمر التالي وقم بتشغيله:

composer require laravel/scout

الخطوة 3: تكوين Elasticsearch في Laravel

بعد التثبيت Laravel Scout ، تحتاج إلى تكوينه لاستخدامه Elasticsearch كمحرك البحث الافتراضي. افتح ملف .env Laravel وأضف معلمات التكوين التالية:

SCOUT_DRIVER=elasticsearch  
SCOUT_ELASTICSEARCH_HOSTS=http://localhost:9200  

حيث SCOUT_DRIVER يعرّف محرك البحث الذي Laravel Scout يستخدم SCOUT_ELASTICSEARCH_HOSTS ويحدد Elasticsearch عنوان URL الذي سيتصل به Scout.

الخطوة 4: تشغيل Migration

بعد ذلك ، قم بتشغيل migration لإنشاء جدول "قابل للبحث" للنماذج التي تريد البحث فيها Elasticsearch. استخدم الأمر التالي:

php artisan migrate

الخطوة 5: تحديد النموذج وتعيين الوصف القابل للبحث

أخيرًا ، في النموذج الذي تريد البحث فيه ، أضف السمة Searchable وحدد الوصف القابل للبحث لكل نموذج. على سبيل المثال:

use Laravel\Scout\Searchable;  
  
class Product extends Model  
{  
    use Searchable;  
  
    public function toSearchableArray()  
    {  
        return [  
            'id' => $this->id,  
            'name' => $this->name,  
            'description' => $this->description,  
            // Add other searchable fields if needed  
        ];  
    }  
}  

الخطوة 6: مزامنة البيانات مع Elasticsearch

بعد تكوين النماذج القابلة للبحث وتعريفها ، قم بتشغيل الأمر لمزامنة البيانات من قاعدة البيانات الخاصة بك إلى Elasticsearch:

php artisan scout:import "App\Models\Product"

بمجرد اكتماله ، Elasticsearch تم دمجه Laravel ، ويمكنك البدء في استخدام ميزة البحث الخاصة به في التطبيق الخاص بك.