في إدارة قواعد البيانات، تعتبر بنية البحث أمرًا بالغ الأهمية خاصةً مع مجموعات البيانات الكبيرة. Meilisearch هو محرك بحث يمكنك دمجه في تطبيقك، ويتميز بخفته وأدائه العالي. في هذه المقالة، سأشرح كيفية تثبيت Meilisearch على خادم Linux، وإجراء التكوينات الأساسية، وإنشاء الفهرس الأول الخاص بك.
ما هو Meilisearch ولماذا يجب اختياره؟
Meilisearch هو محرك بحث مفتوح المصدر مكتوب بلغة Rust. لا يحتاج إلى بنية تحتية ضخمة مثل Elasticsearch؛ يمكنه الاستجابة لآلاف الاستعلامات في الثانية حتى على خادم واحد. إنه خيار مثالي للمطورين الذين يرغبون في إنشاء بنية بحث سريعة دون التعقيدات. يوفر ميزات مثل التصحيح التلقائي، وتحمل الأخطاء الإملائية، والنتائج الفورية، مما يعزز تجربة المستخدم.
المتطلبات الأساسية قبل التثبيت
- خادم Linux (يُوصى باستخدام Ubuntu 20.04 أو 22.04).
- ذاكرة وصول عشوائي (RAM) بحجم 1 جيجابايت على الأقل (يُوصى بـ 2 جيجابايت أو أكثر).
- صلاحيات الجذر أو وصول sudo.
- أدوات أساسية مثل curl و wget.
تثبيت Meilisearch (Ubuntu/Debian)
الخطوة 1: تثبيت التبعيات الضرورية
أولاً، قم بتحديث قائمة الحزم على خادمك:
sudo apt update && sudo apt upgrade -yثم، إذا لم يكن curl و wget مثبتين، قم بتثبيتهما:
sudo apt install curl wget -yالخطوة 2: تنزيل ملف Meilisearch الثنائي
يمكن تنزيل Meilisearch من الموقع الرسمي. الإصدار المستقر الحالي هو v1.8 (حسب تاريخ المقال). قم بتنزيله مباشرة باستخدام الأمر التالي:
curl -L https://github.com/meilisearch/meilisearch/releases/latest/download/meilisearch-linux-amd64 -o meilisearchبعد التنزيل، امنح صلاحية التنفيذ:
chmod +x meilisearchالخطوة 3: التشغيل الأول والاختبار
يمكنك تشغيل الملف الثنائي مباشرة للاختبار، لكن هذا مؤقت؛ سنقوم بتكوينه كخدمة للتثبيت الدائم:
./meilisearch --http-addr 0.0.0.0:7700يجب أن ترى رسالة في الطرفية: "Server is listening on: 0.0.0.0:7700". يمكنك زيارة http://عنوان-الخادم-ip:7700 في المتصفح لرؤية الواجهة. لإيقاف التشغيل، اضغط Ctrl+C.
الخطوة 4: التثبيت كخدمة systemd
لتشغيل Meilisearch باستمرار في الخلفية، سنقوم بإنشاء خدمة systemd. أولاً، انقل الملف الثنائي إلى /usr/local/bin:
sudo mv meilisearch /usr/local/bin/ثم، قم بإنشاء دليل البيانات:
sudo mkdir /var/lib/meilisearchأنشئ ملف خدمة systemd:
sudo nano /etc/systemd/system/meilisearch.serviceالصق التكوين التالي بالداخل:
[Unit] Description=Meilisearch After=network.target [Service] ExecStart=/usr/local/bin/meilisearch --http-addr 0.0.0.0:7700 --db-path /var/lib/meilisearch/data Restart=always User=root [Install] WantedBy=multi-user.targetاحفظ واخرج (Ctrl+X، Y، Enter). قم بتشغيل الخدمة وتمكينها للبدء التلقائي:
sudo systemctl daemon-reload sudo systemctl start meilisearch sudo systemctl enable meilisearchتحقق من حالة الخدمة:
sudo systemctl status meilisearchنصائح الأمان والتكوين
يعمل Meilisearch افتراضيًا بدون مفتاح. لكن في بيئة الإنتاج، يجب عليك تعيين مفتاح رئيسي. أضف --master-key=MY_SECRET_KEY في سطر ExecStart في ملف الخدمة. مثال:
ExecStart=/usr/local/bin/meilisearch --http-addr 0.0.0.0:7700 --db-path /var/lib/meilisearch/data --master-key=sup3rGizliAnahtarلا تنسَ إعادة تشغيل الخدمة:
sudo systemctl restart meilisearchأيضًا، أوصي بقصر الوصول إلى المنفذ 7700 على عناوين IP الضرورية فقط عبر جدار الحماية. على سبيل المثال، إذا كنت تريد فقط أن يصل خادم التطبيق الخاص بك:
sudo ufw allow from 192.168.1.100 to any port 7700إنشاء الفهرس الأول وإضافة البيانات
محرك Meilisearch جاهز. الآن لنقم بسرعة بإنشاء فهرس وإضافة بعض المستندات. يعمل عبر API؛ مثال باستخدام curl:
curl -X POST 'http://localhost:7700/indexes/books/documents' \ --header 'Content-Type: application/json' \ --data-binary '[ {"id": 1, "title": "الحرب والسلام", "author": "تولستوي"}, {"id": 2, "title": "الجريمة والعقاب", "author": "دوستويفسكي"} ]'إذا نجحت، ستحصل على رد مثل "taskUid": 1. للبحث:
curl -X GET 'http://localhost:7700/indexes/books/search?q=حرب'سترى النتائج بتنسيق JSON. بهذه البساطة.
الأداء والتوسع
يمكن لـ Meilisearch فهرسة ملايين المستندات في ثوانٍ حتى على خادم واحد. وفقًا لاختباراتي، على خادم VDS بذاكرة 4 جيجابايت ومعالج ثنائي النواة، تستجيب الاستعلامات في أقل من 10 مللي ثانية مع 10 ملايين مستند. للنطاقات الأكبر، يمكن استخدام بنى الحارس أو المجموعات، لكن عقدة واحدة تكفي لمعظم المشاريع.
الخلاصة
Meilisearch، بتثبيته السريع، وإدارته البسيطة، وأدائه المذهل، هو الخيار الأمثل خاصة للشركات الناشئة والمشاريع المتوسطة. علاوة على ذلك، فهو مفتوح المصدر بالكامل ويدعمه مجتمع نشط. باتباع الخطوات في هذه المقالة، يمكنك إعداد بنية البحث لديك في وقت قصير. إذا واجهت مشكلة، فلا تتردد في ذكرها في التعليقات.