Положение
У меня есть следующая конфигурация Sitecore Lucene:
- Новый индекс, type = "Sitecore.Search.Index, Sitecore.Kernel"
- Содержит два сканера (пользовательский сканер, который добавляет дополнительные «вычисляемые» поля)
- Каждый сканер обрабатывает свой определенный GUID шаблона, поскольку они содержат разные вычисляемые поля
Задача
Рассчитанные поля основаны на полях parent / child . Кажется, что Lucene в Sitecore настроен так, что в документе обновляются только те документы для элементов, которые были фактически изменены .
Как таковые, рассчитанные поля в других документах (обязательные, в этих полях есть условия поиска) не обновляются.
Вопрос
Есть ли возможность вручную запустить обновление других элементов в индексе?
Я изучил наследование Sitecore.Search.Index, но ни один из соответствующих методов не является виртуальным.
Также я попытался подписаться на IndexingProvider-events:
открытое событие EventHandler OnRemoveItem;
открытое событие EventHandler OnRemoveVersion;
открытое событие EventHandler OnUpdateItem;
Идея заключалась в том, чтобы вызвать событие OnUpdateItem в DatabaseCrawler для других элементов, которые необходимо обновить, но вы не можете вызвать это событие извне IndexingProvider.
Есть ли способ вызвать обновление индекса без полной перестройки, что не требует сохранения / повторной публикации этих других элементов?
Спасибо!
Sander