Umbraco lucene/ проверить потерянные пользовательские поля

У нас есть довольно большой сайт Umbraco, который мы поддерживаем для клиента. В частности, один тип узла имеет пользовательский индексатор / поисковик, который используется для поиска в определенной области сайта. У нас есть событие DirectoryIndexer_GatheringNodeData, которое подключается в обработчике запуска, который помещает некоторые данные в определенные поля индекса:

<IndexUserFields>
  <add Name="clientBrandInfo" />
  <add Name="brandIndex"/>
  <add Name="productIndex"/>
</IndexUserFields>
<IncludeNodeTypes>
  <add Name="DirectoryClient"/>
</IncludeNodeTypes>

Мы наблюдаем проблему, когда периодически (кажется, не может воспроизвести его локально) индекс просто полностью удаляет поля brandIndex и productIndex (они исчезают из индекса, как будто их там никогда не было)

Если мы просматриваем данные индекса в бэк-офисе с контрольной панелью управления, поле clientBrandInfo все еще там, а поля brandIndex и productIndex не существуют.

Они исчезают для всех узлов одновременно, и повторный индекс восстанавливает их.

Мы проверили tracelog, и нет никаких признаков того, что событие NodeGathering вызывается для всех узлов (поэтому не требуется полная перестройка), где настраиваемое поле устанавливается пустым.

Мы регистрируем каждый раз, когда запускается это событие, и устанавливаем информацию об узле в индексе.

У кого-нибудь есть предложения? Прямо сейчас мы запланировали перестройку индекса ежечасно, что займет около 3 минут.

Единственное, что я заметил, это то, что индекс показывает некоторые удаления при возникновении проблемы. Индексная панель Однако, тестируя в dev, я не могу воспроизвести проблему потерянных полей (удаление да) даже путем удаления / обновления / добавления узлов, которые проиндексированы в lucene.

0 ответов

Другие вопросы по тегам