كيفية تنفيذ محرك البحث عن النص الكامل قيد التشغيل

StackOverflow https://stackoverflow.com/questions/84339

سؤال

في أحد تطبيقاتنا التجارية (Win32، المكتوب بلغة دلفي) نرغب في تنفيذ البحث عن النص الكامل.يقوم التطبيق بتخزين بيانات المستخدم في نوع من التنسيق الثنائي الذي لا يمكن التعرف عليه مباشرة كنص.

من الناحية المثالية، أود العثور على حل قيد التشغيل (سيكون DLL مناسبًا) أو خادمًا محليًا يمكنني الوصول إليه عبر TCP (يفضل ذلك).يجب أن تسمح لي واجهة برمجة التطبيقات (API) بإرسال معلومات نصية إلى الخادم (جنبًا إلى جنب مع البيانات الوصفية التي تمثل النقطة الثنائية التي جاءت منها)، وبالطبع، يجب أن تسمح لي بإجراء بحث عن النص الكامل مع الحد الأدنى من الدعم على الأقل للعوامل المنطقية والبحث عن سلسلة فرعية.مطلوب دعم يونيكود.

لقد وجدت قائمة واسعة من محركات البحث على Stack Overflow (ما هي بعض خوادم البحث هناك؟) لكنني لا أفهم حقًا أيًا من هذه المحركات يمكنه تلبية احتياجاتي.فكرت في طلب الرأي من The Collective قبل أن أقضي يومًا أو يومين في اختبار كل واحد منهم.

أي اقتراحات؟

هل كانت مفيدة؟

المحلول

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

لدى Microsoft نسخة Express مجانية من خادم البحث الخاص بها.بقدر ما أعرف، يقتصر إصدار Express على تشغيل طبقة التطبيق على خادم واحد.

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

نصائح أخرى

أوصي بإلقاء نظرة على SQLite - البحث عن النص الكامل مضمن في الإصدار الأخير.

أفترض أن الإجابة تعتمد على قاعدة بياناتك.على سبيل المثال، يحتوي SQL Server على بحث عن النص الكامل وكذلك استعلامات اللغة الإنجليزية إذا لزم الأمر.

ألق نظرة على استخدام PostgreSQL وtsearch.

حاول استخدام postgresql مع tsearch

أبو الهول ربما يكون الخيار الأكثر كفاءة وقابلية للتطوير بينما سكليتي-FTS3 هو الخيار الأكثر مباشرة.

في حين لا في العملية، سولر سريع جدًا (استنادًا إلى Lucene) ويمكن الوصول إليه بسهولة من أي نظام أساسي (HTTP)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top