تحسين بحث Discourse للغات CJK

:bookmark: يشرح هذا الدليل كيفية ضبط إعدادات Discourse لاستيعاب لغات CJK (الصينية واليابانية والكورية) بشكل أفضل في بحث الموقع.

:person_raising_hand: مستوى المستخدم المطلوب: مسؤول

قد لا تكون الإعدادات الافتراضية لـ Discourse مثالية للغات CJK (الصينية واليابانية والكورية). ومع ذلك، يقوم Discourse الآن تلقائيًا بتعديل العديد من هذه الإعدادات عندما يتم تعيين اللغة المحلية لموقعك على إحدى لغات CJK (اليابانية، الصينية المبسطة، أو الصينية التقليدية). يشرح هذا الدليل ما يتم تكوينه تلقائيًا وما قد تحتاج إلى تعديله يدويًا.

الإعدادات الافتراضية التلقائية للغة المحلية

عندما يتم تعيين اللغة المحلية الافتراضية لموقعك على ja أو zh_CN أو zh_TW، يتم تعديل الإعدادات التالية تلقائيًا:

الإعداد الافتراضي الإعداد الافتراضي للغة CJK
min_search_term_length 3 1 (ينطبق أيضًا على ko)
min_post_length 20 8
min_first_post_length 20 8
min_personal_message_post_length 10 3
body_min_entropy 7 3
min_topic_title_length 15 6
title_min_entropy 10 3
min_title_similar_length 10 4
allow_uppercase_posts false true (ja فقط)
title_prettify true false

إذا كان موقعك يستخدم إحدى هذه اللغات المحلية، فعادةً لا تحتاج إلى تغيير هذه الإعدادات — فستكون محسّنة بالفعل للغات CJK.

التعديلات اليدوية

اللغة المحلية الكورية

تتلقى اللغة الكورية (ko) فقط إعدادًا افتراضيًا تلقائيًا لـ min_search_term_length. إذا كان موقعك يستخدم اللغة المحلية الكورية، فيجب عليك تعديل الإعدادات الأخرى المذكورة أعلاه يدويًا إلى قيم مماثلة.

المواقع ذات اللغة المحلية المتعددة أو غير CJK مع محتوى CJK

إذا لم تكن اللغة المحلية الافتراضية لموقعك إحدى لغات CJK ولكن لديك مستخدمون يتحدثون CJK بشكل كبير، فستحتاج إلى تعديل هذه الإعدادات يدويًا:

  • اضبط min_search_term_length على 1 أو 2 — يمكن أن تكون الكلمات الرئيسية للغات CJK قصيرة مثل حرف واحد أو حرفين
  • اضبط min_post_length على ما يقرب من 8
  • اضبط body_min_entropy على حوالي 3 — التكرار شائع وذو مغزى في لغات CJK، لذا فإن تعيينه مرتفعًا جدًا قد يتسبب في ظهور أخطاء “منشور غير ذي مغزى”
  • اضبط min_topic_title_length على ما يقرب من 6
  • اضبط title_min_entropy على حوالي 3
  • اضبط min_title_similar_length على ما يقرب من 4
  • قم بتمكين allow_uppercase_posts — قد لا يتعرف Discourse على أحرف CJK عند تحليل عناوين المواضيع للحالة، مما يتسبب في حدوث أخطاء
  • قم بتعطيل title_prettify — تم تصميم قواعد تجميل العنوان للسكريبتات اللاتينية وقد لا تعمل جيدًا مع نصوص CJK

الترميز للبحث (Search tokenization)

لتحسين دقة البحث، يوفر Discourse إعدادات اختيارية خاصة بالترميز للغات CJK:

  • search_tokenize_chinese — يتيح تجزئة النص الصيني للحصول على نتائج بحث أفضل
  • search_tokenize_japanese — يتيح تجزئة النص الياباني للحصول على نتائج بحث أفضل

يتم تعطيل هذه الإعدادات افتراضيًا ويمكن تمكينها في إعدادات بحث المسؤول.

استكشاف أخطاء البحث وإصلاحها

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

  1. ادخل إلى دليل تثبيت Discourse Docker الخاص بك.
  2. قم بتشغيل الأمر التالي للوصول إلى حاوية التطبيق:
    ./launcher enter app
    
  3. بمجرد الدخول إلى الحاوية، قم بتشغيل أمر إعادة الفهرسة:
    rake search:reindex
    

بعد إعادة الفهرسة، يجب أن تكون قادرًا على البحث في المحتوى بفعالية.

8 إعجابات