2017-06-14 55 views
0

我寫了一些代碼來刷新索引,當一個項目被以編程方式添加到Sitecore。現在,由於實時系統由1個CM和2個CD服務器組成,因此我需要我的代碼來觸發CD服務器上的索引刷新(不幸的是,我的開發機器只是一個盒子,所以我無法完全測試) 。我在網上查找過,但是在以編程方式觸發重新索引時找不到任何關於此內容的信息。刷新Sitecore索引以包括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)); 

我對指數的配置有remotebuild策略啓用

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

從我的角度來看,不需要在CD服務器上觸發重建索引。一旦用戶添加了一個項目,您就可以將其發佈到目標數據庫(web),然後觸發重建索引。從您提供的代碼中,該項目將始終爲空,因爲該項目已添加到CM Server(主控)上,並且仍然不存在於CD Servers(Web)上 –

回答

0

由於@Hishaam Namooya在他的評論由主到網絡中指出,出版應觸發web索引更新開箱即用,除非你在配置中禁用了某些東西。

請注意,除非項目處於最終工作流程狀態,否則項目將不會發布,因此如果您想要一個完全自動化的過程來創建項目,更新本地索引,然後立即更新Web索引,則還需要將工作流程狀態更新爲您的最終批准狀態,然後觸發該項目的發佈。