10

Lucene インデックスを共有できないことはわかっています。

Sitecore は各インスタンスのファイル システムに Lucene インデックスのローカル コピーを保持し、インスタンス間でのインデックスの共有をサポートしていません。

xcopyCM と CD の間で Lucene のインデックスを作成することはできますか?

30 以上のコンテンツ配信サーバーでインデックスを維持するための他のアプローチまたは推奨事項はありますか?

更新: CD が独自のインデックス更新を開始する必要があることは十分承知しています。30 を超える CD サーバーでは、すべての CD サーバーが同じインデックス セットを持っているとは限らない期間があるのではないかと考えています。何らかの理由で一部の CD サーバーでインデックスが失敗し、その理由/場所の追跡が困難になるのではないかと心配しています。そのため、インデックスが 1 か所に維持され (ある種の共有)、基本的にすべての CD に即座にレプリケートされる別のアプローチがあるかどうかを調べようとしています。

4

4 に答える 4

8

CM および CD サーバーの Web データベースに対して History Engine を有効にする必要があります。

Sitecore スケーリング ガイドからのこの抜粋を参照してください。

Sitecore データベースの History Engine を有効にするには: web.config ファイルで、次のセクションを /configuration/sitecore/databases/database 要素に追加します。ここで、id はデータベースの名前と同じです:

<Engines.HistoryEngine.Storage>
  <obj type="Sitecore.Data.$(database).$(database)HistoryStorage, Sitecore.Kernel">
   <param connectionStringName="$(id)" />
   <EntryLifeTime>30.00:00:00</EntryLifeTime>
  </obj>
</Engines.HistoryEngine.Storage>
<Engines.HistoryEngine.SaveDotNetCallStack>false</Engines.HistoryEngine.SaveDotNetCallStack>

Sitecore アイテムが変更されると、変更が行われた Sitecore インスタンスで Lucene インデックスがすぐに更新されます。マルチサーバー環境のリモート サーバーでは、アイテムが変更された直後に Lucene インデックスが更新されません。Lucene インデックスは、web.config ファイルの Indexing.UpdateInterval 設定で定義された間隔の後に、Indexing.UpdateJobThrottle 設定で定義された 2 つの結果の更新間の最小待機時間で自動的に更新されます。

こちらをご覧ください

于 2013-02-15T08:31:59.283 に答える
2

また、オープン ソースのSitecore Lucene Refresherの使用を検討することもできます。これは、メモリ内でインデックス クロール操作を実行し、インデックスをファイル システムにコミットして、再構築プロセス中にインデックス コンテンツを失わないようにします。これは少なくとも役に立ちます。次に、特定の時刻にこのクロール/再構築操作を実行するように何らかのエージェントをセットアップして、すべての CD サーバーが同時にこれを実行するように同期します。

于 2013-02-15T19:28:55.083 に答える
1

Wesley Lomax の答えは正しいです。ただし、1000 年代のデータ フォルダーにアイテムがあるという同じ状況にも関与していたことを指摘したいと思います。次のように web.config 設定を更新しました。

 <!--  INDEX FOLDER
        The path to the folder where the Lucene.Net search indexes are stored.
        Default value: $(dataFolder)/indexes
  -->
  <setting name="IndexFolder" value="$(dataFolder)/indexes" />
  <!--  INDEX UPDATE INTERVAL
        Gets the interval between the IndexingManager checking its queue for pending actions.
        Default value: "00:01:00" (1 minute)
  -->
  <setting name="Indexing.UpdateInterval" value="00:00:30" />
  <!--  INDEX UPDATE JOB THROTTLE
        Gets the minimum time to wait between individual index update jobs.
        Default value: "00:00:01" (1 second)
  -->
  <setting name="Indexing.UpdateJobThrottle" value="00:00:01" />
于 2013-02-15T14:14:26.420 に答える
0

サイトコアは、このシナリオではSolrを使用し、複数の Lucene インデックスを同期しようとしないことを推奨していることを指摘しておく必要があります。

Lucene の代わりに Solr を使用する一般的な理由は次のとおりです。

複数のコンテンツ配信サーバーを使用している (または後で使用する予定がある) 場合は、Solr を使用してください。Solr はそのような環境で自動的に動作します。Lucene を使用することもできますが、インデックスがサーバー間で同期されていることを自分で確認する必要があります。

したがって、サイトをスケーリングする予定がある場合は、Solr を使用する必要があります (複数のサーバーで分散セットアップを行う場合)。

SolrまたはLuceneの使用から

于 2016-10-31T14:07:33.380 に答える