このガイドでは、サイト検索における中国語、日本語、韓国語(CJK)言語への対応を改善するために、Discourse の設定を調整する方法を説明します。
必要なユーザーレベル: 管理者
Discourse のデフォルト設定は、CJK(中国語、日本語、韓国語)言語にとって最適でない場合があります。ただし、現在、サイトのロケールが CJK 言語(日本語、簡体字中国語、繁体字中国語)に設定されている場合、Discourse はこれらの設定の多くを自動的に調整します。このガイドでは、自動的に設定される内容と、引き続き手動で調整する必要がある内容について説明します。
自動ロケールデフォルト値
サイトのデフォルトロケールが 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 のキーワードは 1 文字または 2 文字の長さになることがあります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 テキストではうまく機能しない可能性があります
検索トークン化
検索の精度を向上させるために、Discourse はオプションの CJK 固有のトークン化設定を提供しています。
search_tokenize_chinese— 中国語テキストのセグメンテーションを有効にして、検索結果を改善しますsearch_tokenize_japanese— 日本語テキストのセグメンテーションを有効にして、検索結果を改善します
これらはデフォルトでは無効になっており、管理者の検索設定で有効にできます。
検索問題のトラブルシューティング
これらの変更を行った後に検索機能で問題が発生した場合は、データベースの再インデックスが必要になることがあります。実行方法は次のとおりです。
- Discourse Docker インストールディレクトリに入ります。
- 次のコマンドを実行して、アプリコンテナにアクセスします。
./launcher enter app - コンテナに入ったら、再インデックスコマンドを実行します。
rake search:reindex
再インデックス後、コンテンツを効果的に検索できるようになるはずです。