2013-07-03 1 views
2

Sitecore 콘텐츠 트리에는 수천 개의 항목이 있으며 프로그래밍 방식으로 몇 가지 항목을 변경하려고합니다. 큰 시간이 걸리는 lucene 전체 인덱스를 다시 작성하는 대신 실시간으로 변경하려는 각 항목의 인덱스 항목을 업데이트하려고합니다. 나는 Sitecore 색인에서 단일 항목을 업데이트하는 방법은 무엇입니까?

item.Database.Indexes.UpdateItem(item); 

을 시도했지만이 무효이며, SearchManager를 사용달라고.

주어진 항목에 대한 색인 항목을 업데이트하는 방법을 알려줄 수 있습니까?

추 신 : PS : 웹 사이트가 아닌 데스크톱 응용 프로그램에서 항목을 변경하고 있습니다. HistoryEngine.RegisterItem... 방법 중 하나를 실행

+1

이 항목은에없는 추가 프로그래밍 방식으로 Sitecore 항목을 변경 한 후 색인이 자동으로 업데이트됩니까? –

+0

데스크톱 응용 프로그램에서 항목을 변경하고 있으므로 색인을 명시 적으로 업데이트해야합니다. 웹 사이트에서는 색인을 자동으로 업데이트합니다. –

답변

5

봅니다 예 :

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() 메서드를 시도했지만 작동하지 않았습니다. 이제 항목을 만들고 변경 사항을 적용한 후 3 개의 명령문을 그대로 사용했습니다. 이제 색인이 업데이트됩니다. 감사! –

0

그럼 거기에 실제로 인덱스에는 업데이트 작업이 없기 때문에 삭제합니까 주시기/