Стратегия индекса Sitecore syncMaster не работает

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

У нас есть два определенных индекса; Мастер и Интернет. Находясь в редакторе взаимодействия, он использует главный индекс и веб-индекс для фактического сайта.

Мы настроили стратегию веб-индексации как onPublishEndAsync, и мы настроили стратегию главного индекса как syncMaster, идея заключается в том, что пользователи CMS могут добавлять / редактировать элементы Sitecore, обеспечивающие работу этого компонента, и сразу же просматривать их в редакторе взаимодействия.

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

        <strategies hint="list:AddStrategy">
          <strategy ref="contentSearch/indexConfigurations/indexUpdateStrategies/syncMaster" />
        </strategies>

Почему индекс не обновляется при изменении данных?

ОБНОВЛЕНИЕ

Итак, я сравнил файлы, предложенные для чистой установки, и они совпадают.

Добавлю, что стандартным sitecore_master_index не пользуюсь. У нас есть несколько сайтов, работающих на одном экземпляре sitecore, поэтому мы добавили конфигурацию, включающую websitename_master_index. Я сравнил конфигурацию для этого в узле <index> с sitecore_master_index в Sitecore.ContentSearch.Lucene.Index.Master.config, и единственное отличие состоит в элементе <root> сканера, который указывает на конкретный узел содержимого сайта, плюс мы добавили несколько настраиваемых полей, но я предполагаю, что эти поля не будут ' Не вызывает ли проблема, что мы можем вручную восстановить индекс?

Еще одна интересная вещь, которую я обнаружил, глядя на showconfig.aspx, заключалась в следующем:

<agent type="Sitecore.ContentSearch.Tasks.Optimize" method="Run" interval="12:00:00" patch:source="Sitecore.ContentSearch.config">
    <indexes hint="list">
        <index>sitecore_master_index</index>
    </indexes>
</agent>

Я не уверен, имеет ли это какое-то значение, но не было подходящей записи для нашего пользовательского websitename_master_index?

ОБНОВЛЕНИЕ

Я также добавил в краулер ведение журнала уровня отладки

В crawling.log я вижу только следующее:

14416 08:55:10 INFO  [Index=website_master_index] Initializing SitecoreItemCrawler. DB:master / Root:/sitecore/Content/Website/Home    
14416 08:55:10 INFO  [Index=website_master_index] Initializing SynchronousStrategy.

После редактирования и сохранения элементов в журнале больше не упоминается индекс, и это действительно верно для стандарта sitecore_master_index, для которого мы не меняли конфигурацию?


person David Masters    schedule 03.03.2016    source источник
comment
Можете ли вы сравнить Sitecore.ContentSearch.Lucene.Index.Master.config из вашего решения с тем же файлом из чистого решения?   -  person Vlad Iobagiu    schedule 03.03.2016
comment
Таким образом устанавливается нестандартная конфигурация индекса. Вносили ли вы какие-либо изменения в Sitecore.ContentSearch.DefaultConfigurations.config, Sitecore.ContentSearch.Lucene.DefaultIndexConfiguration.config или Sitecore.ContentSearch.Lucene.Index.Master.config. Какие-нибудь ошибки в логах помогут?   -  person Chris Auer    schedule 03.03.2016
comment
Спасибо, ребята - обновление предоставлено   -  person David Masters    schedule 03.03.2016
comment
Можете ли вы найти в файле журнала сканирования слово остановлено и посмотреть, не появится ли что-нибудь? Недавно у нас возникла проблема, из-за которой наш главный индекс перестал сканировать.   -  person Gabbar    schedule 09.06.2016


Ответы (1)


Чтобы гарантировать, что файлы Lucene не изменяются одновременно, Lucene добавляет концепцию файла .lock - какой бы процесс ни собирался писать, должен создать файл. Если он уже есть - дождитесь его удаления.

Если процесс записи завершается, файл никогда не удаляется, следовательно, индекс не обновляется.

Решением было очистить папку вручную.

Чтобы сделать более точный прогноз, необходим снимок памяти процесса, чтобы увидеть, что происходит внутри (или что выполняет каждый поток).

person Nikolay Mitikov    schedule 21.11.2019