Otimizando a busca do Discourse para idiomas CJK

:bookmark: Este guia explica como ajustar as configurações do Discourse para melhor acomodar os idiomas chinês, japonês e coreano (CJK) na pesquisa do site.

:person_raising_hand: Nível de usuário necessário: Administrador

As configurações padrão do Discourse podem não ser ideais para os idiomas CJK (chinês, japonês, coreano). No entanto, o Discourse agora ajusta automaticamente muitas dessas configurações quando a localidade do seu site é definida como um idioma CJK (japonês, chinês simplificado ou chinês tradicional). Este guia explica o que é configurado automaticamente e o que você ainda pode precisar ajustar manualmente.

Padrões automáticos de localidade

Quando a localidade padrão do seu site é definida como ja, zh_CN ou zh_TW, as seguintes configurações são ajustadas automaticamente:

Configuração Padrão Padrão de localidade CJK
min_search_term_length 3 1 (também 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 apenas)
title_prettify true false

Se o seu site usa uma dessas localidades, geralmente você não precisa alterar essas configurações — elas já estarão otimizadas para CJK.

Ajustes manuais

Localidade coreana

A localidade coreana (ko) recebe apenas um padrão de localidade automático para min_search_term_length. Se o seu site usa a localidade coreana, você deve ajustar manualmente as outras configurações listadas acima para valores semelhantes.

Sites com localidade multilíngue ou não CJK com conteúdo CJK

Se a localidade padrão do seu site não for um idioma CJK, mas você tiver usuários que falam CJK significativos, você precisará ajustar essas configurações manualmente:

  • Defina min_search_term_length como 1 ou 2 — palavras-chave CJK podem ter apenas um ou dois caracteres
  • Defina min_post_length para aproximadamente 8
  • Defina body_min_entropy para cerca de 3 — a reduplicação é comum e significativa nos idiomas CJK, portanto, definir este valor muito alto pode causar erros de “postagem não significativa”
  • Defina min_topic_title_length para aproximadamente 6
  • Defina title_min_entropy para cerca de 3
  • Defina min_title_similar_length para aproximadamente 4
  • Habilite allow_uppercase_posts — o Discourse pode não reconhecer caracteres CJK ao analisar títulos de tópicos para caixa, causando erros
  • Desabilite title_prettify — as regras de embelezamento de título são projetadas para scripts latinos e podem não funcionar bem com texto CJK

Tokenização de pesquisa

Para melhorar a precisão da pesquisa, o Discourse oferece configurações opcionais de tokenização específicas para CJK:

  • search_tokenize_chinese — habilita a segmentação de texto chinês para melhores resultados de pesquisa
  • search_tokenize_japanese — habilita a segmentação de texto japonês para melhores resultados de pesquisa

Essas estão desabilitadas por padrão e podem ser ativadas nas configurações de pesquisa do administrador.

Solução de problemas de pesquisa

Se você encontrar problemas com a funcionalidade de pesquisa após fazer essas alterações, talvez seja necessário reindexar seu banco de dados. Veja como fazer isso:

  1. Entre no diretório de instalação do Docker do Discourse.
  2. Execute o seguinte comando para acessar o contêiner do aplicativo:
    ./launcher enter app
    
  3. Uma vez dentro do contêiner, execute o comando de reindexação:
    rake search:reindex
    

Após a reindexação, você deverá conseguir pesquisar conteúdo de forma eficaz.

8 curtidas