2017-06-14 14 views
0

プログラムでSitecoreにアイテムが追加されたときに、インデックスを更新するコードを書きました。ライブシステムは1台のCMと2台のCDサーバーで構成されているので、インデックス作成をCDサーバーでリフレッシュするようにコードを設定する必要があります(残念ながら、私の開発マシンは単なるボックスなので、 。私はオンラインで見てきましたが、再インデックスをプログラムでトリガするときはこれについて何も見つかりませんでした。CDを含めるためにSitecoreインデックスを更新する

これはコードを書く必要がありますか、またはデフォルトでこれを行うのですか?コードを書く必要がある場合は、どのようにすればよいか考えてください。私の現在のコードは以下の通りです。インデックスの

ISearchIndex index = ContentSearchManager.GetIndex("GeorgeDrexler_web_index"); 
Sitecore.Data.Database database = Sitecore.Configuration.Factory.GetDatabase("web"); 

Item item = database.GetItem("/sitecore/content/GeorgeDrexler/Global/Applications"); 
index.Refresh(new SitecoreIndexableItem(item)); 

私のconfigがremotebuild戦略は、@Hishaam Namooyaは彼のコメントで指摘したように、マスターからウェブへの公開は、箱から出してウェブインデックスの更新をトリガすべき

<strategy ref="contentSearch/indexConfigurations/indexUpdateStrategies/remoteRebuild" /> 
+0

私の見解では、CDサーバー上の再構築インデックスを起動する必要はありません。ユーザーがアイテムを追加すると、それをターゲットデータベース(Web)に公開して、リビルドインデックスをトリガーすることができます。指定したコードから、項目はCMサーバー(マスター)に追加され、CDサーバー(Web)にはまだ存在しないため、項目は常にNULLになります。 –

答えて

0

を有効にしていますあなたが設定で何かを無効にしていない限り。

最終的なワークフロー状態になっていなければアイテムは公開されないので、アイテムを作成し、ローカルインデックスを更新してすぐにWebインデックスを更新する完全自動化プロセスが必要な場合は、ワークフローの状態を最終承認状態に更新し、アイテムの公開を開始します。

関連する問題