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. Потом после перепрошивки вроде все нормально работает.
Я также нашел это . Это также помогает.
"/sitecore/content/globalreferences/locations"
- person Marek Musielak   schedule 07.09.2015