ContentSearchManager не возвращает никаких результатов

Sitecore 8 ContentSearchManager не возвращает никаких результатов. Ниже мой код:

    public IQueryable<SearchResultItem> PerformSearch()
    {
        var index = ContentSearchManager.GetIndex("sitecore_web_index");
        using (var searchContext = index.CreateSearchContext())
        {
            var locations = searchContext.GetQueryable<SearchResultItem>()
            .Where(i => i.Path.StartsWith("/sitecore/content/GlobalReferences/Locations"));


            var item = locations.ToList();


            return locations;
        }
    }

Снимок кода:

введите здесь описание изображения

Дерево сайта:

введите здесь описание изображения

Есть ли что-нибудь, что мне нужно сделать, чтобы заставить его работать? Как настроить что-нибудь в конфиге или что-то в этом роде?

Что я пробовал до сих пор:

  • Перестроить индекс [Нет результатов]

Примечание:

Я использую люцен.

ОБНОВЛЕНИЯ:

Когда я переключаюсь на мастер, записи извлекаются.

var index = ContentSearchManager.GetIndex("sitecore_master_index");

ОБНОВЛЕНИЕ 2 (08.09.2015)

Похоже, у меня проблема при выполнении индексации в web.

Job started: Index_Update_IndexName=sitecore_web_index|#Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> Lucene.Net.Index.CorruptIndexException: checksum mismatch in segments file
   at Lucene.Net.Index.SegmentInfos.Read(Directory directory, String segmentFileName)
   at Lucene.Net.Index.IndexFileDeleter..ctor(Directory directory, IndexDeletionPolicy policy, SegmentInfos segmentInfos, StreamWriter infoStream, DocumentsWriter docWriter, HashSet`1 synced)
   at Lucene.Net.Index.IndexWriter.Init(Directory d, Analyzer a, Boolean create, IndexDeletionPolicy deletionPolicy, Int32 maxFieldLength, IndexingChain indexingChain, IndexCommit commit)
   at Lucene.Net.Index.IndexWriter..ctor(Directory d, Analyzer a, Boolean create, MaxFieldLength mfl)
   at Sitecore.ContentSearch.LuceneProvider.Sharding.LuceneShard.Reset()
   at Sitecore.ContentSearch.LuceneProvider.LuceneIndex.DoReset(IProviderUpdateContext context)
   at Sitecore.ContentSearch.LuceneProvider.LuceneIndex.PerformRebuild(IndexingOptions indexingOptions, CancellationToken cancellationToken)
   at Sitecore.ContentSearch.LuceneProvider.LuceneIndex.Rebuild()
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
   at (Object , Object[] )
   at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args)
   at Sitecore.Jobs.Job.ThreadEntry(Object state)

Есть идеи как исправить? Что я пробовал до сих пор:

  • Восстановить индекс
  • Восстановить дерево
  • Восстановить все

Но ничего не работает.

Есть ли способ очистить индексацию сети, чтобы я мог индексировать с самого начала?

РЕШЕНИЕ:

Так как индекс поврежден. Я удалил файлы и папки внутри папки \Data\indexes. Потом после перепрошивки вроде все нормально работает.

Я также нашел это . Это также помогает.


person Pinoy2015    schedule 07.09.2015    source источник
comment
Вы используете Lucene или Solr? Попробуйте использовать путь в нижнем регистре в запросе "/sitecore/content/globalreferences/locations"   -  person Marek Musielak    schedule 07.09.2015
comment
Можете ли вы переключиться на веб-базу данных и проверить, что элемент Locations и его подэлементы существуют?   -  person Ahmed Okour    schedule 07.09.2015
comment
@ Ахмед, уже проверил. Он есть (пункты и подпункты)   -  person Pinoy2015    schedule 08.09.2015
comment
Похоже, произошла ошибка при выполнении индексации в web. Пожалуйста, смотрите вопросы об обновлении.   -  person Pinoy2015    schedule 08.09.2015
comment
Хорошо, попробуйте удалить всю индексную папку для Интернета, а затем снова попробуйте ее восстановить.   -  person Ahmed Okour    schedule 08.09.2015
comment
@Pinoy2015 Вы можете найти папку index в \Data\indexes\sitecore_web_index. Вам просто нужно удалить ее, а затем перестроить свой индекс.   -  person Ahmed Okour    schedule 08.09.2015


Ответы (3)


Дважды проверьте в своей конфигурации для sitecore_web_index, что корневой путь для индекса установлен так, чтобы он включал путь globalreferences.

Для этого должен быть файл исправления в каталоге include.

Для справки, он должен быть настроен следующим образом:

http://www.mikkelhm.dk/blog/defining-a-custom-index-in-sitecore-7-the-absolute-minimum

Если вы все еще не можете получить какие-либо данные, я бы порекомендовал скачать Luke, чтобы точно увидеть, что находится в вашем индексе.

https://code.google.com/p/luke/

person Ian Graham    schedule 07.09.2015
comment
Это корень: ‹locations hint=list:AddCrawler› ‹crawler type=Sitecore.ContentSearch.SitecoreItemCrawler, Sitecore.ContentSearch› ‹Database›web‹/Database› ‹Root›/sitecore‹/Root› ‹/crawler› ‹/ локации› - person Pinoy2015; 07.09.2015
comment
Как спросил Марек, вы используете Lucene? - person Ian Graham; 07.09.2015
comment
Да, я использую Lucen - person Pinoy2015; 08.09.2015
comment
Если я не использую файл патча, а использую только файл по умолчанию, он не работает без файла патча? - person Pinoy2015; 08.09.2015
comment
Это будет работать, если прямо в конфигурации, но файл исправления может переопределять настройки. Вы выполнили /sitecore/admin/showconfig.aspx, чтобы проверить, не переопределяются ли настройки root для сканера? - person Ian Graham; 08.09.2015

Ответ ниже И уверены ли вы на 100%, что элементы, которые вы ищете, опубликованы? Я знаю, это глупо, но иногда кажется, что мы просто забываем публиковать.

person Younes    schedule 07.09.2015
comment
Да, после того, как я перестрою index. Я опубликовал его, чтобы убедиться. - person Pinoy2015; 07.09.2015

РЕШЕНИЕ:

Так как индекс поврежден. Я удалил файлы и папки внутри папки \Data\indexes. Потом после перепрошивки вроде все нормально работает.

person Pinoy2015    schedule 08.09.2015
comment
Рад, что это было решением, кстати, вы можете отметить свой ответ как правильный. - person Ahmed Okour; 08.09.2015