Optimierung der Discourse-Suche für CJK-Sprachen

:bookmark: Diese Anleitung erklärt, wie Sie die Discourse-Einstellungen anpassen können, um chinesische, japanische und koreanische (CJK) Sprachen in der Seitensuche besser zu unterstützen.

:person_raising_hand: Erforderliches Benutzerniveau: Administrator

Die Standardeinstellungen von Discourse sind möglicherweise nicht optimal für CJK-Sprachen (Chinesisch, Japanisch, Koreanisch). Discourse passt jedoch inzwischen viele dieser Einstellungen automatisch an, wenn das Gebietsschema Ihrer Seite auf eine CJK-Sprache (Japanisch, vereinfachtes Chinesisch oder traditionelles Chinesisch) eingestellt ist. Diese Anleitung erklärt, was automatisch konfiguriert wird und was Sie möglicherweise noch manuell anpassen müssen.

Automatische Gebietsschema-Standardwerte

Wenn das Standardgebietsschema Ihrer Seite auf ja, zh_CN oder zh_TW eingestellt ist, werden die folgenden Einstellungen automatisch angepasst:

Einstellung Standardwert CJK-Gebietsschema-Standardwert
min_search_term_length 3 1 (gilt auch für 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 nur)
title_prettify true false

Wenn Ihre Seite eines dieser Gebietsschemata verwendet, müssen Sie diese Einstellungen im Allgemeinen nicht ändern – sie sind bereits für CJK optimiert.

Manuelle Anpassungen

Koreanisches Gebietsschema

Das koreanische Gebietsschema (ko) erhält nur einen automatischen Standardwert für die Gebietsschema-Einstellung min_search_term_length. Wenn Ihre Seite das koreanische Gebietsschema verwendet, sollten Sie die anderen oben aufgeführten Einstellungen auf ähnliche Werte anpassen.

Mehrsprachige Websites oder Websites mit Nicht-CJK-Gebietsschema mit CJK-Inhalt

Wenn das Standardgebietsschema Ihrer Seite keine CJK-Sprache ist, Sie aber viele Benutzer haben, die CJK sprechen, müssen Sie diese Einstellungen manuell anpassen:

  • Setzen Sie min_search_term_length auf 1 oder 2 – CJK-Schlüsselwörter können nur ein oder zwei Zeichen lang sein
  • Setzen Sie min_post_length auf ungefähr 8
  • Setzen Sie body_min_entropy auf etwa 3 – Wiederholungen sind in CJK-Sprachen üblich und bedeutsam, daher kann eine zu hohe Einstellung zu Fehlermeldungen wegen „nicht aussagekräftiger Beiträge“ führen
  • Setzen Sie min_topic_title_length auf ungefähr 6
  • Setzen Sie title_min_entropy auf etwa 3
  • Setzen Sie min_title_similar_length auf ungefähr 4
  • Aktivieren Sie allow_uppercase_posts – Discourse erkennt CJK-Zeichen möglicherweise nicht, wenn es Themenüberschriften auf Groß-/Kleinschreibung analysiert, was zu Fehlern führen kann
  • Deaktivieren Sie title_prettify – Die Regeln zur Verschönerung von Titeln sind für lateinische Schriften konzipiert und funktionieren möglicherweise nicht gut mit CJK-Text

Suche-Tokenisierung

Für eine verbesserte Suchgenauigkeit bietet Discourse optionale, CJK-spezifische Tokenisierungs-Einstellungen:

  • search_tokenize_chinese – ermöglicht die Segmentierung von chinesischem Text für bessere Suchergebnisse
  • search_tokenize_japanese – ermöglicht die Segmentierung von japanischem Text für bessere Suchergebnisse

Diese sind standardmäßig deaktiviert und können in den Admin-Sucheinstellungen aktiviert werden.

Beheben von Suchproblemen

Wenn Sie nach diesen Änderungen Probleme mit der Suchfunktion feststellen, müssen Sie möglicherweise Ihre Datenbank neu indizieren. So gehen Sie vor:

  1. Wechseln Sie in das Verzeichnis Ihrer Discourse Docker-Installation.
  2. Führen Sie den folgenden Befehl aus, um auf den App-Container zuzugreifen:
    ./launcher enter app
    
  3. Sobald Sie sich im Container befinden, führen Sie den Befehl zum Neuindizieren aus:
    rake search:reindex
    

Nach der Neuindizierung sollten Sie Inhalte effektiv durchsuchen können.

8 „Gefällt mir“