SytuacjaSitecore Lucene: re-index dziecko (lub dominującej) pozycji na aktualizację artykuł
Mam następujący Sitecore Lucene config:
- nowy indeks, type = "Sitecore.Search.Index , Sitecore.Kernel”
- zawiera dwa roboty (zwyczaj gąsienicowe, który dodaje dodatkowe pola«analizowany»)
- Każdy robot obsługuje swój specyficzny szablon GUID, ponieważ zawierają one różne pola obliczone
Problem
Wyliczone pola są oparte na rodzic/dziecko dziedzinach. Wygląda na to, że wydaje się, że Lucene w Sitecore jest skonfigurowany, tylko te dokumenty, które zostały zmienione zostały zaktualizowane w indeksie.
Jako takie, pola wyliczone w innych dokumentach (które są wymagane, są warunki wyszukiwania w tych polach) nie są aktualizowane.
Pytanie
Czy istnieje możliwość, aby ręcznie wywołać aktualizację pozostałych pozycji w indeksie?
Przyjrzałem się dziedziczeniu Sitecore.Search.Index, ale żadna z odpowiednich metod nie jest wirtualna.
Próbowałem również zasubskrybować zdarzenia IndexingProvider:
publiczne wydarzenie EventHandler OnRemoveItem;
wydarzenie publiczne EventHandler OnRemoveVersion;
wydarzenie publiczne EventHandler OnUpdateItem;
Ideą tego było wyzwolenie zdarzenia OnUpdateItem w DatabaseCrawler dla innych elementów, które wymagają aktualizacji, ale nie można wywołać tego zdarzenia spoza IndexingProvider.
Czy istnieje sposób na wyzwolenie aktualizacji indeksu bez przeprowadzenia pełnej przebudowy, która nie obejmuje zapisywania/ponownego publikowania tych innych elementów?
Dzięki!
Sander
Czy wyzwolenie HistoryEngine z dodatkowymi wpisami nie ma żadnych niepożądanych skutków ubocznych dla innych komponentów Sitecore? To brzmi jak rozsądne podejście, więc spróbuję to wkrótce. Niedługo odpowiem, najpierw muszę ukończyć inne zadania sprintu;) – sanderd
Analiza w reflektorze pokazuje IndexingManager jako jedynego słuchacza dla HistoryEngine.AddedEntry, więc prawdopodobnie tam jesteś bezpieczny. Przypuszczam, że nie mogę zagwarantować, że jest to dowód na przyszłość. To powiedziawszy, wskazuje na to, że twój detektor AddEntry musi mieć logikę, aby zapobiec nieskończonej rekurencji. Dokona edycji. – techphoria414