Luceneインデックスの切り替え

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

インデックスの2つのディレクトリを保持するようにLuceneを設定できます。これは、インデックスの完全な再構築の前にインデックスディレクトリがリセット (削除) されるという事実に対処します。これは本番環境でのみ問題となるため、テスト中や本番環境に移行する前に、SwitchOnRebuildLuceneIndexクラスを使用してカスタムインデックスを再構成できます。

SwitchOnRebuildLuceneIndexクラスは、LuceneIndexクラスを継承します。これにより、特定のインデックスに対して2つのディレクトリを保持する機能が追加されます。

SwitchOnRebuildLuceneIndexオブジェクトを初期化すると、セカンダリ フォルダの存在が確認されます。フォルダが存在しない場合は、このフォルダが作成されます。ベースライン ディレクトリの名前に _secを付加し、作成するフォルダの名前として使用します。

インデックスは、IndexReader.LastModified(Directory) メソッドを使用して、最終更新日に基づいてプライマリ ディレクトリを選択します。最新のディレクトリをプライマリディレクトリとして使用します。

Indexプロパティ ストアには、どのディレクトリがプライマリで、どのディレクトリがセカンダリであるかに関する情報が含まれています。

SwitchOnRebuildLuceneIndexオブジェクトは、初期化時に次のエントリをCrawlingLogオブジェクトに書き込みます。

“Resolving directories from index meta data store”
"Resolving directories by last time modified"
"Primary directory last modified = '…'"
"Secondary directory last modified = '…'"
“ReadUpdateDirectory is set to …”
“FullRebuildDirectory is set to '{0}'”

完全なインデックスの再構築が完了すると、1次ディレクトリと2次ディレクトリが切り替えられます。

インデックスの2つのディレクトリを保持するようにLuceneを設定するには、次のようにします。

  • 特定の検索インデックスのタイプ参照をSitecore.ContentSearch.LuceneProvider.SwitchOnRebuildLuceneIndexに変更します。

    <indexes hint="list:AddIndex">
       <index id="content_index"
              type="Sitecore.ContentSearch.LuceneProvider.SwitchOnRebuildLuceneIndex, 
                    Sitecore.ContentSearch.LuceneProvider">
           <param desc="name">$(id)</param>
           <param desc="folder">$(id)</param>
    ...
メモ

検索インデックスがSwitchOnRebuildLuceneIndex方式を使用するように設定ファイルを調整した後、Webサイトはプライマリ ディレクトリのインデックスを使用します。完全なインデックスの再構築を行うたびに、この再構築はセカンダリ ディレクトリで行われます。セカンダリ ディレクトリは、再構築後にプライマリ ディレクトリになります。

この記事を改善するための提案がある場合は、 お知らせください!