قدرات / حدود البحث بالنص الكامل في قاعدة البيانات؟

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

  1. هذا هو مصطلح البحث
  2. مصطلح البحث مثير للاهتمام
  3. مصطلح البحث أكثر إثارة للاهتمام هنا لأن العنوان أطول

جميع العناوين المذكورة أعلاه تحتوي على مصطلح البحث، لذا فإن السؤال هو: كيف نرتب النتائج؟ حاليًا، نعتمد على وظيفة الترتيب في Postgres لتحديد ذلك نيابةً عنا.

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

هناك العديد من العوامل التي يأخذها Postgres في الاعتبار، لكن في النهاية يظل الترتيب غامضًا إلى حد ما ويعتمد حقًا من موقع إلى آخر حسب كيفية هيكلة محتوى المنتدى. هدفنا هنا في Discourse هو توفير إعداد افتراضي جيد يعمل لمعظم المنتديات الموجودة هناك.