Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Laravel 5
Code

كيفية إعداد البحث عن نص كامل باستخدام الكشاف في Laravel

by
Difficulty:IntermediateLength:MediumLanguages:

Arabic (العربية/عربي) translation by Islam Scarlet (you can also view the original English article)

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

ما هو بالضبط كشاف Laravel؟ تلخص الوثائق الرسمية الأمر كما يلي:

يوفر كشاف Laravel حلاً بسيطًا يستند إلى برنامج التشغيل لإضافة البحث عن نص كامل إلى نماذج Eloquent. باستخدام مراقبين النموذج، سيحافظ الكشاف بشكل تلقائي على مزامنة فهارس البحث الخاصة بك مع سجلات Eloquent.

أساسا، كشاف Laravel هي مكتبة تدير المعالجة في الفهرس كلما كان هناك تغيير في بيانات النموذج. يعتمد المكان الذي ستتم فهرسته على برنامج التشغيل الذي قمت بتكوينه مع مكتبة الكشاف.

حتى الآن، مكتبة الكشاف تدعم Algolia، وهي عبارة عن API لمحرك البحث تستند إلى سحابة، وهذا ما سنستخدمه في هذه المقالة لشرح تنفيذ البحث بالنص الكامل.

سنبدأ بتثبيت مكتبات خوادم الكشاف و Algolia، ومع المضي قدمًا، سنستعرض مثالًا حقيقيًا لشرح كيف يمكنك فهرسة بياناتك والبحث فيها.

تكوينات الخادم

في هذا القسم، سنقوم بتثبيت التبعيات المطلوبة من أجل جعل مكتبة الكشاف تعمل مع Laravel. بعد التثبيت، سنحتاج إلى إجراء عملية تهيئة بسيطة جدًا حتى يتمكن Laravel من العثور على مكتبة الكشاف.

دعونا نمضي قدما ونثبت مكتبة الكشاف باستخدام الـComposer.

هذا جيد لتثبيت مكتبة الكشاف. والآن بعد أن قمنا بتثبيت مكتبة الكشاف، دعونا نتأكد من أن Laravel يعرف ذالك.

من خلال العمل مع Laravel، ربما تكون على دراية بمفهوم مقدم الخدمة، والذي يسمح لك بتكوين الخدمات في تطبيقك. وبالتالي، عندما تريد تمكين خدمة جديدة في تطبيق Laravel، تحتاج فقط إلى إضافة إدخال مقدم خدمة مرتبط في config / app.php.

إذا لم تكن على دراية بمقدمي خدمة Laravel حتى الآن، فإنني أوصيك بشدة بأن تقدم لنفسك خدمة وتمر عبر هذه المقالة التمهيدية التي تشرح أساسيات مقدمي الخدمات في Laravel.

في حالتنا، نحتاج فقط إلى إضافة موفر ScoutServiceProvider إلى قائمة موفري الخدمة في config / app.php، كما هو موضح في المقتطف التالي.

الآن، Laravel على دراية بموفر خدمة ScoutServiceProvider. تأتي مكتبة Scout مع ملف تكوين يسمح لنا بضبط شهادة API.

دعونا نمضي قدما وننشر ما توفر مكتبة الكشاف باستخدام الأمر التالي.

كما ترون، فقد تم نسخ ملف vendor/laravel/scout/config/scout.php إلى config/scout.php

بعد ذلك، امض قدمًا وأنشئ حسابًا مع Algolia حيث سنحتاج إلى شهادة API في المقام الأول. بمجرد حصولك على معلومات API، دعنا نمضي قدمًا ونقوم بتهيئة الإعدادات الضرورية في ملف config / scout.php، كما هو موضح في المقتطف التالي.

لاحظ أننا قمنا بتعيين قيمة SCOUT_DRIVER إلى برنامج التشغيل algolia. وبالتالي، فإنه من الضروري تكوين الإعدادات الضرورية لبرنامج التشغيل Algolia في نهاية الملف. في الأساس، تحتاج فقط إلى تحديد id وsecret التي حصلت عليها من حساب Algolia.

كما ترى، نحن نحضر القيم من متغيرات البيئة. لذلك دعونا نتأكد من أننا قمنا بتعيين المتغيرات التالية في ملف .env بشكل صحيح.

وأخيرًا، نحتاج إلى تثبيت Algolia PHP SDK، والذي سيتم استخدامه للتفاعل مع Algolia باستخدام الـAPI. لنقم بتثبيته باستخدام الـcomposer كما هو موضح في المقتطف التالي.

وبهذا، قمنا بتركيب جميع الاعتماديات اللازمة لنشر البيانات وفهرستها إلى خدمة Algolia.

إنشاء نماذج قابلة للفهرسة و البحث

في القسم السابق، قمنا بكل العمل الشاق لإعداد مكتبات الكشاف وAlgolia حتى نتمكن من فهرسة البيانات والبحث فيها باستخدام خدمة البحث في Algolia.

في هذا القسم، سنتناول مثالاً يوضح كيف يمكنك فهرسة البيانات الموجودة واسترداد نتائج البحث من Algolia. أفترض أن لديك نموذج نشر افتراضيًا في تطبيقك وهذا ما سنستخدمه في مثالنا.

أول شيء يتعين علينا القيام به هو إضافة سمة Laravel \ Scout \ Searchable إلى نموذج الـنشر. وهذا ما يجعل نموذج الـنشر قابلاً للبحث. يقوم Laravel بمزامنة السجلات المسجلة مع فهرس Algolia في كل مرة يتم فيها إضافة أو تحديث أو حذف سجل النشر.

ومع هذا، فإن نموذج الـنشر محسن من أجل البحث!

بعد ذلك، نود تهيئة الحقول التي يجب فهرستها في المقام الأول. بالطبع، لا تريد فهرسة جميع حقول النموذج الخاص بك في Algolia للحفاظ على فعاليتها وخفة وزنها. في الواقع، في أكثر الأحيان، لن تحتاج إليها.

يمكنك إضافة toSearchableArray في فئة النموذج لتكوين الحقول التي سيتم فهرستها.

الآن، نحن على استعداد لاستيراد سجلات الـنشر الموجودة إلى Algolia وفهرستها. في الواقع، تسهل مكتبة الكشاف هذا من خلال توفير الأمر الحرفي التالي.

ينبغي أن تستورد جميع سجلات نموذج الـنشر في دفعة واحدة! يتم فهرستها بمجرد استيرادها، لذلك نحن جاهزون لاستعلام السجلات بالفعل. المضي قدما واستكشاف لوحة المعلومات Algolia لمشاهدة السجلات المستوردة وغيرها من الخدمات.

كيف يعمل تماما

في هذا القسم، سنقوم بإنشاء مثال يوضح كيفية إجراء عمليات البحث و CRUD التي تتم مزامنتها في الوقت الحقيقي مع فهرس Algolia.

امضي قدما وإنشئ ملف app/Http/Controllers/SearchController.php مع المحتويات التالية.

بالطبع، نحن بحاجة إلى إضافة المسارات المرتبطة كذلك.

دعونا نذهب من خلال طريقة query لمعرفة كيفية إجراء بحث في Algolia.

تذكر أننا جعلنا نموذج الـنشر قابلاً للبحث عن طريق إضافة سمة قابلة للبحث. وبالتالي، يمكن لنموذج الـنشر استخدام طريقة البحث لاسترداد السجلات من فهرس Algolia. في المثال أعلاه، نحاول جلب السجلات التي تطابق الكلمة المفتاح للعنوان.

بعد ذلك، هناك طريقة الـإضافة التي تقلد سير العمل لإضافة سجل نشر جديد.

لا يوجد شيء وهمي في التعليمات البرمجية أعلاه؛ ينشئ فقط سجل نشر جديد باستخدام نموذج الـنشر. لكن نموذج الـنشر ينفذ السمات القابلة للبحث، لذا يقوم Laravel بعمل إضافي هذه المرة من خلال فهرسة السجل الذي تم إنشاؤه حديثًا في Algolia. كما ترون، تتم الفهرسة في الوقت الفعلي.

أخيراً، هناك طريقة الـحذف. دعونا نذهب من خلالها كذلك.

كما كنت تتوقع، يتم حذف السجل مباشرة من مؤشر Algolia بمجرد حذفه من قاعدة البيانات.

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

وهذا أيضا يقودنا إلى نهاية هذه المقالة!

خاتمة

اليوم ، ناقشنا كيف يمكنك تنفيذ البحث عن النص الكامل في Laravel باستخدام مكتبة كشاف Laravel. في هذه العملية، مررنا بالتجهيزات الضرورية ونموذجًا واقعيًا لإثبات ذلك.

لا تتردد في السؤال إذا كانت لديك أي استفسارات أو شكوك باستخدام موجز التعليقات أدناه!

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.