يشرح هذا الدليل كيفية ضبط إعدادات Discourse لاستيعاب لغات CJK (الصينية واليابانية والكورية) بشكل أفضل في بحث الموقع.
مستوى المستخدم المطلوب: مسؤول
قد لا تكون الإعدادات الافتراضية لـ 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— يتيح تجزئة النص الياباني للحصول على نتائج بحث أفضل
يتم تعطيل هذه الإعدادات افتراضيًا ويمكن تمكينها في إعدادات بحث المسؤول.
استكشاف أخطاء البحث وإصلاحها
إذا واجهت مشكلات في وظيفة البحث بعد إجراء هذه التغييرات، فقد تحتاج إلى إعادة فهرسة قاعدة البيانات الخاصة بك. إليك كيفية القيام بذلك:
- ادخل إلى دليل تثبيت Discourse Docker الخاص بك.
- قم بتشغيل الأمر التالي للوصول إلى حاوية التطبيق:
./launcher enter app - بمجرد الدخول إلى الحاوية، قم بتشغيل أمر إعادة الفهرسة:
rake search:reindex
بعد إعادة الفهرسة، يجب أن تكون قادرًا على البحث في المحتوى بفعالية.