Optimizando la búsqueda de Discourse para idiomas CJK

:bookmark: Esta guía explica cómo ajustar la configuración de Discourse para que se adapte mejor a los idiomas chino, japonés y coreano (CJK) en la búsqueda del sitio.

:person_raising_hand: Nivel de usuario requerido: Administrador

La configuración predeterminada de Discourse puede no ser óptima para los idiomas CJK (chino, japonés, coreano). Sin embargo, Discourse ahora ajusta automáticamente muchas de estas configuraciones cuando la configuración regional del sitio se establece en un idioma CJK (japonés, chino simplificado o chino tradicional). Esta guía explica qué se configura automáticamente y qué es posible que aún deba ajustar manualmente.

Valores predeterminados automáticos de la configuración regional

Cuando la configuración regional predeterminada de su sitio se establece en ja, zh_CN o zh_TW, se ajustan automáticamente las siguientes configuraciones:

Configuración Predeterminado Predeterminado de la configuración regional CJK
min_search_term_length 3 1 (también se aplica a 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 solamente)
title_prettify true false

Si su sitio utiliza una de estas configuraciones regionales, por lo general no necesita cambiar estas configuraciones; ya estarán optimizadas para CJK.

Ajustes manuales

Configuración regional coreana

El coreano (ko) solo recibe un valor predeterminado automático de la configuración regional para min_search_term_length. Si su sitio utiliza la configuración regional coreana, debe ajustar manualmente las otras configuraciones enumeradas anteriormente a valores similares.

Sitios con configuración regional multilingüe o no CJK con contenido CJK

Si la configuración regional predeterminada de su sitio no es un idioma CJK, pero tiene usuarios que hablan CJK importantes, deberá ajustar estas configuraciones manualmente:

  • Establezca min_search_term_length en 1 o 2: las palabras clave CJK pueden tener tan solo uno o dos caracteres
  • Establezca min_post_length en aproximadamente 8
  • Establezca body_min_entropy en aproximadamente 3: la duplicación es común y significativa en los idiomas CJK, por lo que establecer este valor demasiado alto puede provocar errores de “publicación no significativa”
  • Establezca min_topic_title_length en aproximadamente 6
  • Establezca title_min_entropy en aproximadamente 3
  • Establezca min_title_similar_length en aproximadamente 4
  • Habilite allow_uppercase_posts: Discourse podría no reconocer los caracteres CJK al analizar los títulos de los temas en cuanto a mayúsculas y minúsculas, lo que provoca errores
  • Deshabilite title_prettify: las reglas de embellecimiento de títulos están diseñadas para escrituras latinas y es posible que no funcionen bien con texto CJK

Tokenización de búsqueda

Para mejorar la precisión de la búsqueda, Discourse ofrece configuraciones opcionales de tokenización específicas de CJK:

  • search_tokenize_chinese: habilita la segmentación del texto chino para mejores resultados de búsqueda
  • search_tokenize_japanese: habilita la segmentación del texto japonés para mejores resultados de búsqueda

Estas están deshabilitadas por defecto y se pueden habilitar en la configuración de búsqueda del administrador.

Solución de problemas de búsqueda

Si encuentra problemas con la funcionalidad de búsqueda después de realizar estos cambios, es posible que deba volver a indexar su base de datos. A continuación, se muestra cómo hacerlo:

  1. Ingrese al directorio de instalación de Docker de Discourse.
  2. Ejecute el siguiente comando para acceder al contenedor de la aplicación:
    ./launcher enter app
    
  3. Una vez dentro del contenedor, ejecute el comando de nueva indexación:
    rake search:reindex
    

Después de la nueva indexación, debería poder buscar contenido de manera efectiva.

8 Me gusta