Solrスペル・チェッカーの使用
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
Solrにはスペル チェッカー機能があります。この機能を使用して、他の類似した用語に基づくインライン クエリの提案をユーザーに提供できます。候補のソースは、Solrのフィールド内の用語、外部テキスト・ファイル、または他の索引内のフィールドです。
ソースは、次の4つの方法で構成できます。
-
IndexBasedSpellChecker: スペルチェックに使用される並列インデックスのソースとしてSolrインデックスを使用します。インデックス用語の基準としてフィールドを定義する必要があります。
-
DirectSolrSpellChecker: 並列インデックスを作成せずにSolrインデックスの項を使用します。
-
FileBasedSpellChecker: 外部ファイルをスペル チェック辞書として使用します。
-
WordBreakSolrSpellChecker:隣接するクエリ用語を結合したり、用語を複数の単語に分割したりします
次のベスト プラクティスをお勧めします。
-
IndexBasedSpellCheckを使用する場合は、一部のフィールド (タイトル、本文など) から、スペルチェック用に作成した別のフィールドに用語をコピーします。
-
このスペル チェッカーに対してクエリを実行するフィールドを選択するときにDirectSolrSpellCheckを使用する場合は、そのフィールドに対する分析 (特にステミング) が比較的少ないフィールドを使用します。
Solrの構成
Solrの構成
Solrは、以下の2つの方法で構成できます。
-
既存の選択要求ハンドラーを使用する: すべての要求で提案を生成する必要がある場合
-
スペルチェックの提案を提供するために専用のリクエストハンドラが必要な場合は、スペルリクエストハンドラを使用します
Solrを設定するには、SolrConfig.xmlファイルを編集します。
既存の要求ハンドラーを使用する
これにより、マスターインデックスの_nameフィールドのスペルチェックが有効になります。
-
solrconfig.xmlファイル (C:\solr-6.3.0\server\solr\configsets\sitecore_core_index\conf\solrconfig.xmlなど) を開きます。
-
<arr name="components">ノードを見つけて有効にします。デフォルトでは無効になっています。
-
<arr name="components">ノードに<str>spellcheck</str>を追加します。
-
<searchComponent name="spellcheck" class="solr.SpellCheckComponent">ノードに移動します。
-
<lst name="spellchecker">ノードの下で、<str name="field">_text_</str> を <str name="field">_name</str> に変更して、_nameフィールドのスペルチェックを有効にします。
動作確認するには:
-
ブラウザでSolr Adminを開くか、コアインデックスを選択するか、次のリンクに直接アクセスしますhttp://localhost:8983/solr/#/sitecore_core_index/query
-
spellcheckチェックボックスをオンにしてスペル チェックを有効にし、spellcheck.qテキスト フィールド ( homt ) にスペル チェック クエリを入力します
-
「Execute Query」をクリックします。
Solr Adminは、スペルチェックがSolrサーバーで機能する場合、次のようになります。

複数のSolrコアを使用する場合は、これらのコアごとにこの手順を繰り返す必要があります。
スペルリクエストハンドラの使用
これにより、マスターインデックスの_nameフィールドのスペルチェッカーが有効になります。
-
solrconfig.xmlファイル (C:\solr-6.3.0\server\solr\configsets\sitecore_core_index\conf\solrconfig.xmlなど) を開きます。
-
<searchComponent name="spellcheck" class="solr.SpellCheckComponent">ノードを見つけます。
-
<lst name="spellchecker">ノードの下で、<str name="field">_text</str>を<str name="field">_name</str>に変更します。
-
SolrConfig.xmlファイルを保存し、Solrを再起動します。
動作確認するには:
-
ブラウザでhttp://localhost:8983/solr/sitecore_master_index/spell?q=_name:homy&spellcheck=true&spellcheck.count=10&rows=100000000&version=2.2&spellcheck.build=true&wt=json&indent=trueに移動します。
うまくいけば、レスポンスは次のようになります。

オプションの設定
Solrスペル・チェッカー機能の他の多くの側面を構成することができます。これらのパラメーターは、solrconfig.xmlファイルの要求ハンドラー セクションで、ノードを<lst name="defaults">ノードに追加して構成します。
たとえば、次のスニペットでは、デフォルトのカウントとしてspellcheck.countを加算し、値を20にします。
https://cwiki.apache.org/confluence/display/solr/Spell+Checkingには詳細があります。
サンプルコード
サンプルコード
このサンプル コードは、検索語句の結果が得られない場合に候補のリストを作成する方法を示しています。
たとえば、ユーザーが「homy」という用語を検索し、結果がない場合、homeを含むhomyに近い候補のリストを返すことができます。
Sitecoreは、使用できる2つのAPIを公開しています。
-
コードでISolrQueryの実装を使用する場合は、これを使用します。
-
コードでISolrQueryを使用しない場合は、これを使用します。これは簡単な実装です。
次の例は、SitecoreのSolrスペル チェッカーを使用する2つの異なる方法を示しています。