دليل النشر

Meilisearch مقابل Typesense: أي محرك بحث مستضاف ذاتيًا؟

انشر على VPS Cloud ←

مقارنة

مقارنات

Meilisearch مقابل Typesense: أي محرك بحث مستضاف ذاتيًا؟

إضافة بحث فوري إلى تطبيقك من دون الاعتماد على خدمة SaaS ممكنة مع Meilisearch أو Typesense. محرّكا بحث موجَّهان للمطوّرين، يُستضافان ذاتيًا في بضع دقائق. لنقارن بينهما.

4 دقائق للقراءةعدد الخطوات: 6
المحتويات· لماذا تستضيف محرك البحث الخاص بك ذاتيًا على VPS1/4
  1. 01لماذا تستضيف محرك البحث الخاص بك ذاتيًا على VPS
  2. 02مزايا محرك بحث مستضاف ذاتيًا
  3. 03المتطلبات: الذاكرة (RAM) أولًا
  4. 04نشر Meilisearch (أو Typesense) على VPS

لماذا تستضيف محرك البحث الخاص بك ذاتيًا على VPS

محرك بحث مخصص يستبدل استعلامات LIKE '%...%' البطيئة ببحث فوري متسامح مع الأخطاء المطبعية ومُرتَّب حسب الملاءمة. استضافته ذاتيًا على VPS تجنّبك الفوترة حسب عدد عمليات البحث أو المستندات في حلول SaaS، وتُبقي فهرسك (وبالتالي بيانات عملائك ومكتبتك) على بنيتك التحتية. صُمِّم Meilisearch وTypesense لـ 'البحث أثناء الكتابة' (search-as-you-type): استجابات في بضع ميلي ثانية، وواجهة REST بسيطة، وتسامح مع الأخطاء المطبعية، وأوجه (facets) مُضمَّنة. يتألق Meilisearch بسهولة البدء وجودة الملاءمة الافتراضية؛ ويركّز Typesense على الأداء الخام والتحكّم الدقيق في الترتيب (ranking) والتجميع (clustering) عالي التوافر. يبقي Typesense الفهرس القابل للبحث كاملًا في الذاكرة (RAM)؛ أما Meilisearch فيخزّنه على القرص (LMDB، ملف معيَّن في الذاكرة) ويستخدم الذاكرة مخزنًا مؤقتًا: وفي الحالتين تحدّد الذاكرة حجم الـ VPS مباشرةً.

مزايا محرك بحث مستضاف ذاتيًا

  • بحث فوري مع تسامح مع الأخطاء المطبعية، من دون برمجة الخوارزمية
  • لا فوترة حسب المستند المفهرس ولا حسب الاستعلام
  • الفهرس وبيانات العمل محفوظة على VPS الخاص بك
  • أوجه وعوامل تصفية وفرز لبناء واجهات مكتبة غنية
  • واجهة REST ومفاتيح محدودة النطاق لاستخدام آمن من جهة الواجهة الأمامية
  • مرادفات وقواعد ملاءمة قابلة للتعديل حسب مصطلحات عملك

المتطلبات: الذاكرة (RAM) أولًا

الذاكرة (RAM) هي المورد الحرج: يحمّل Typesense الفهرس القابل للبحث كاملًا في الذاكرة (تحتسب وثائقه من 2 إلى 3 أضعاف حجم الحقول القابلة للبحث)، ويجيب Meilisearch بسرعة أكبر كلما اتّسعت الذاكرة لفهرسه. لبضع عشرات الآلاف من المستندات، يكفي 1 إلى 2 غيغابايت من الذاكرة و1 vCPU. ولمئات الآلاف إلى بضعة ملايين من المستندات مع الأوجه، استهدف 4 غيغابايت و2 vCPU. قرص SSD يسرّع الاستمرار وإعادة التحميل عند الإقلاع. تحتاج إلى Docker وCompose، ونطاق فرعي (search.yourdomain.com) إذا كشفت الواجهة البرمجية للواجهة الأمامية، وبروكسي عكسي لأجل TLS. جهّز مفتاحًا رئيسيًا قويًا ومفاتيح بحث محدودة النطاق كي لا تكشف مفتاح المسؤول أبدًا من جهة المتصفح.

نشر Meilisearch (أو Typesense) على VPS

  1. تعريف خدمة Docker

    عرِّف getmeili/meilisearch (أو typesense/typesense)، وركِّب وحدة تخزين لاستمرار الفهرس، ومرّر المفتاح الرئيسي عبر متغير بيئة (MEILI_MASTER_KEY أو TYPESENSE_API_KEY)، مولَّدًا بالأمر openssl rand -base64 32 ومحفوظًا في .env. ولـ Meilisearch أضِف MEILI_ENV=production: يصبح المفتاح الرئيسي (16 بايت على الأقل) إلزاميًا وتُعطَّل معاينة البحث المدمجة. اربط المنفذ 7700/8108 محليًا فقط.

  2. التشغيل والتحقق من الصحة

    نفِّذ docker compose up -d ثم اختبر curl http://127.0.0.1:7700/health. استجابة available تؤكّد أن المحرك جاهز لاستقبال المستندات.

  3. إنشاء الفهرس وتغذية البيانات

    أرسِل مستنداتك بصيغة JSON عبر الواجهة البرمجية (POST إلى /indexes/produits/documents). عرِّف السمات القابلة للبحث والتصفية والفرز؛ في محرك البحث، يؤثّر ترتيب تعريف السمات القابلة للبحث في الملاءمة مباشرةً.

  4. كشف الواجهة البرمجية خلف بروكسي عكسي

    وجِّه search.yourdomain.com إلى المنفذ المحلي باستخدام Caddy أو Nginx لأجل HTTPS. اقصر CORS على نطاق تطبيقك: في البروكسي بالنسبة إلى Meilisearch الذي لا يملك خيار CORS، وبالخيار --cors-domains بالنسبة إلى Typesense. لا يمنع CORS سوى المتصفحات: المفتاح محدود النطاق هو ما يحمي المحرك فعلًا.

  5. توليد مفاتيح محدودة النطاق

    أنشئ مفتاحًا مقصورًا على عمليات البحث على فهرس معيّن، ليُستخدَم من جهة المتصفح. يجب ألا يغادر المفتاح الرئيسي الخادم أبدًا أو يظهر في شيفرة الواجهة الأمامية.

  6. المزامنة مع قاعدة بياناتك

    أنشئ مهمة (webhook أو مهمة مجدولة) تدفع عمليات الإنشاء والتحديث إلى الفهرس عند كل تغيير في قاعدة البيانات، للحفاظ على اتساق البحث مع مصدر الحقيقة.

مرّر الجدول أفقيًا

المعيارMeilisearchTypesense
سهولة البدءبسيط جدًا، ملاءمة افتراضية ممتازةبسيط، تحكّم أكثر وضوحًا
التسامح مع الأخطاء المطبعيةأصلي وقابل للضبطأصلي، قابل للتهيئة لكل حقل
التحكّم في الترتيبقواعد ترتيب مُرتَّبةدقيق جدًا (ترتيب لكل حقل، أوزان)
الأوجه / عوامل التصفيةكاملةكاملة وعالية الأداء
التوافر العاليالتناسخ والتجزئة (sharding) حكر على إصدار Enterpriseتجميع Raft مدمج
استهلاك الذاكرةالفهرس على القرص، والذاكرة مخزن مؤقتالفهرس القابل للبحث كاملًا في الذاكرة
البحث الشعاعي (vector)مدعوممدعوم
اللغة / النشرRust، ثنائي واحد (MIT؛ إصدار Enterprise بترخيص BUSL 1.1)C++، ثنائي واحد (GPL v3)

قبل المبالغة في حجم الـ VPS، لا تفهرس سوى الحقول القابلة للبحث فعلًا. تخزين نص HTML كامل وكبير في الفهرس يضخّم الذاكرة بلا داعٍ: فهرس العنوان والوسوم وملخصًا، واحتفظ بالمحتوى الثقيل في قاعدة البيانات، يُجلب بعد النقر. ستقلّل بصمة الذاكرة بوضوح من دون أن تخسر في الملاءمة.

بحث فوري على VPS الخاص بك

يتيح لك VPS Cloud من ServOrbit مع قالب Docker نشر Meilisearch أو Typesense مع بروكسي عكسي وSSL، جاهزين لفهرسة مكتبتك في بضع دقائق.