هذا النقاش خارج الموضوع تمامًا بالنسبة للنقاش الأصلي، لكنني لست متأكدًا مما إذا كان يجب أن أكون مجردًا من الدهشة، أم مُتفاجئًا تمامًا:
(التأكيد مني)
لستُ على وشك الطعن في خيارات قواعد البيانات، إذ ليس لدي أي خبرة في هذا المجال، لكن هذه العبارة توحي بأن PostgreSQL لا يميز داخليًا بين هذه الحالات. هل هذا النوع من القيود شائع بين محركات البحث النصي في قواعد البيانات؟ إذا كان الأمر كذلك، فسوف يفسر ذلك إلى حد كبير سبب كون معظم مرافق البحث في المواقع غير مجدية تمامًا…
دعني أوضح هذه العبارة. بالنسبة للمطابقات التامة، لا حاجة لترتيب النتائج لأن الأمر إما أن يكون هناك تطابق أو لا يوجد. أما بالنسبة للمطابقات الجزئية، فكيف سنقرر أيها يجب أن يحتل مرتبة أعلى؟
هذا هو مصطلح البحث
مصطلح البحث مثير للاهتمام
مصطلح البحث أكثر إثارة للاهتمام هنا لأن العنوان أطول
جميع العناوين المذكورة أعلاه تحتوي على مصطلح البحث، لذا فإن السؤال هو: كيف نرتب النتائج؟ حاليًا، نعتمد على وظيفة الترتيب في Postgres لتحديد ذلك نيابةً عنا.
تجارب الترتيب تهدف إلى قياس مدى ملاءمة المستندات لاستعلام معين، بحيث يمكن عرض الأكثر ملاءمةً أولاً عند وجود العديد من التطابقات. توفر PostgreSQL دالتين مبرمجتين مسبقًا للترتيب، تأخذان في الاعتبار المعلومات المعجمية، والتقارب، والهيكلي؛ أي أنها تحسب مدى تكرار مصطلحات الاستعلام في المستند، ومدى تقاربها في المستند، ومدى أهمية الجزء من المستند الذي تظهر فيه. ومع ذلك، فإن مفهوم الملاءمة غامض ويعتمد بشكل كبير على التطبيق المحدد. قد تتطلب تطبيقات مختلفة معلومات إضافية للترتيب، مثل وقت تعديل المستند. وظائف الترتيب المدمجة هي مجرد أمثلة. يمكنك كتابة وظائف ترتيب خاصة بك و/أو دمج نتائجها مع عوامل إضافية لتناسب احتياجاتك المحددة.
هناك العديد من العوامل التي يأخذها Postgres في الاعتبار، لكن في النهاية يظل الترتيب غامضًا إلى حد ما ويعتمد حقًا من موقع إلى آخر حسب كيفية هيكلة محتوى المنتدى. هدفنا هنا في Discourse هو توفير إعداد افتراضي جيد يعمل لمعظم المنتديات الموجودة هناك.
آه… إذن، من المحتمل أن يكون هناك سوء فهم من جهتي. كنت أظن أنك تقصد أن قاعدة البيانات لا تستطيع التمييز بين التطابق التام والتطابق الجزئي.
في سياق إعطاء الأولوية للتطابقات في عناوين المواضيع، كما كنا نناقش في الأصل:
سأصنف فعليًا أمثالتك الثلاثة جميعها على أنها “تطابقات تامة” لغرض قصدِي.
بينما عبارة “هناك مصطلح يمكنك البحث عنه” ستكون تطابقًا جزئيًا.
أمثالتك الثلاثة متساوية في الترتيب. فقط اذكرها بالترتيب الذي تُكتشف به.
مثالِي يأتي في ترتيب أدنى منها.
ومع ذلك، فإنها جميعًا تتقدم في الترتيب على أي منشورات تطابقها أو ترتبط بها فقط بسبب محتوى المنشور بدون العنوان.
إذا كنت قلقًا من أن نتائج البحث الأولى ستمتلئ بتطابقات “العنوان”، فاستخدم بحث العنوان فقط عندما يصل مصطلح البحث إلى مستوى تعقيد أدنى. الهدف هو وجود 4 أو 5 تطابقات “عنوان” كحد أقصى في أعلى نتائج البحث. (رغم أنني أرى أن تحديد ذلك قد يكون صعبًا)