Optimiser la recherche Discourse pour les langues CJK

:bookmark: Ce guide explique comment ajuster les paramètres de Discourse pour mieux prendre en charge les langues CJK (chinois, japonais et coréen) dans la recherche du site.

:person_raising_hand: Niveau d’utilisateur requis : Administrateur

Les paramètres par défaut de Discourse peuvent ne pas être optimaux pour les langues CJK (chinois, japonais, coréen). Cependant, Discourse ajuste désormais automatiquement nombre de ces paramètres lorsque la locale de votre site est définie sur une langue CJK (japonais, chinois simplifié ou chinois traditionnel). Ce guide explique ce qui est configuré automatiquement et ce que vous pourriez encore avoir besoin d’ajuster manuellement.

Paramètres par défaut automatiques de la locale

Lorsque la locale par défaut de votre site est définie sur ja, zh_CN ou zh_TW, les paramètres suivants sont ajustés automatiquement :

Paramètre Défaut Défaut pour locale CJK
min_search_term_length 3 1 (s’applique également à 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 uniquement)
title_prettify true false

Si votre site utilise l’une de ces locales, vous n’avez généralement pas besoin de modifier ces paramètres — ils seront déjà optimisés pour le CJK.

Ajustements manuels

Locale coréenne

La locale coréenne (ko) ne reçoit qu’un ajustement automatique pour min_search_term_length. Si votre site utilise la locale coréenne, vous devriez ajuster manuellement les autres paramètres listés ci-dessus à des valeurs similaires.

Sites multilingues ou avec locale non-CJK contenant du contenu CJK

Si la locale par défaut de votre site n’est pas une langue CJK mais que vous avez un nombre important d’utilisateurs parlant CJK, vous devrez ajuster ces paramètres manuellement :

  • Définissez min_search_term_length sur 1 ou 2 — les mots-clés CJK peuvent être aussi courts qu’un ou deux caractères
  • Définissez min_post_length à environ 8
  • Définissez body_min_entropy à environ 3 — la répétition est courante et significative dans les langues CJK, donc le définir trop haut pourrait entraîner des erreurs de « message non significatif »
  • Définissez min_topic_title_length à environ 6
  • Définissez title_min_entropy à environ 3
  • Définissez min_title_similar_length à environ 4
  • Activez allow_uppercase_posts — Discourse pourrait ne pas reconnaître les caractères CJK lors de l’analyse des titres de sujets pour la casse, provoquant des erreurs
  • Désactivez title_prettify — les règles d’embellissement des titres sont conçues pour les écritures latines et pourraient ne pas bien fonctionner avec le texte CJK

Tokenisation de la recherche

Pour améliorer la précision de la recherche, Discourse propose des paramètres de tokenisation spécifiques CJK en option :

  • search_tokenize_chinese — active la segmentation du texte chinois pour de meilleurs résultats de recherche
  • search_tokenize_japanese — active la segmentation du texte japonais pour de meilleurs résultats de recherche

Ces options sont désactivées par défaut et peuvent être activées dans les paramètres de recherche de l’administrateur.

Dépannage des problèmes de recherche

Si vous rencontrez des problèmes avec la fonctionnalité de recherche après avoir effectué ces modifications, vous devrez peut-être réindexer votre base de données. Voici comment procéder :

  1. Entrez dans le répertoire d’installation Docker de Discourse.
  2. Exécutez la commande suivante pour accéder au conteneur de l’application :
    ./launcher enter app
    
  3. Une fois à l’intérieur du conteneur, exécutez la commande de réindexation :
    rake search:reindex
    

Après la réindexation, vous devriez être en mesure de rechercher du contenu efficacement.

8 « J'aime »