2013-07-03 21 views
2

在我的Sitecore內容樹中有幾千個項目,我只想以編程方式修改幾個項目。我不想重建需要花費大量時間的整個lucene索引,而是要實時更新每個項目的索引條目。我試圖如何更新Sitecore索引中的單個項目?

item.Database.Indexes.UpdateItem(item); 

,但它已經過時了,叫我用SearchManager

任何人都可以指導我如何更新給定項目的索引條目?

PS:我正在更改來自桌面應用程序的項目,而不是網站。

+1

不是條目中以編程方式更改Sitecore項目後索引自動更新? –

+0

我正在改變桌面應用程序的項目,所以我必須顯式更新索引。在網站上它會自動更新索引。 –

回答

5

嘗試執行的HistoryEngine.RegisterItem...方法之一,例如:

item.Database.Engines.HistoryEngine.RegisterItemSaved(item, new ItemChanges(item)); 
item.Database.Engines.HistoryEngine.RegisterItemCreated(item); 
item.Database.Engines.HistoryEngine.RegisterItemMoved(item, oldParentId); 
+0

嗨Maras, 我試着用你給定的陳述,但索引沒有得到更新。我的要求不是註冊條目,而是實時更新索引。 –

+0

嗨Maras,以前我只嘗試過RegisterItemCreated()方法,因爲我正在創建新的項目,它不起作用。現在我已經使用了三個給定的語句,因爲它是在創建該項目並對其進行任何更改之後進行的,現在索引正在更新。謝謝! –

0

那麼實際上沒有對指標無更新操作,可以隨意做刪除/添加

相關問題