Sitecore ContentSearchManager不返回任何结果

Sitecore ContentSearchManager不返回任何结果,sitecore,sitecore8,Sitecore,Sitecore8,Sitecore 8 ContentSearchManager不返回任何结果。下面是我的代码: public IQueryable<SearchResultItem> PerformSearch() { var index = ContentSearchManager.GetIndex("sitecore_web_index"); using (var searchContext = index.CreateSearchContext(

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;
        }
    }
更新2(2015年8月9日)

看起来我在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\索引中的文件和文件夹。然后重建后,一切似乎都正常工作


我也发现了。这也有帮助。

在sitecore\u web\u索引的配置中仔细检查索引的根路径是否已设置,以便它将包括全局引用路径

在include目录中应该有一个补丁文件

作为参考,其设置应如下所示:

如果您仍然无法获得任何数据,我建议您下载Luke,以查看索引中的确切内容


请回答下面的问题,您是否100%确定您搜索的项目已发布?我知道这很愚蠢,但有时我们似乎忘记了出版

解决方案:


因为索引已损坏。我删除了\Data\索引中的文件和文件夹。然后在重建之后,一切似乎都正常工作。

您使用Lucene还是Solr?尝试在查询中使用小写路径
“/sitecore/content/globalreferences/locations”
能否切换到web数据库并检查“locations”项及其子项是否存在?@Ahmed,已选中。它就在那里(项目和子项目)好的,尝试删除web的整个索引文件夹,然后再次尝试重建它。@Pinoy2015您可以在“\Data\indexes\sitecore\u web\u index”中找到索引文件夹,您只需删除该文件夹,然后在我重建索引后重建索引。我发布它是为了确保。这是根目录:web/sitecore,正如Marek问的,你在使用Lucene吗?是的,我在使用lucenIf我没有使用补丁文件,只使用默认值,没有补丁文件它不工作吗?如果直接在配置中运行,它会工作,但修补程序文件可能会覆盖设置。您是否已通过/sitecore/admin/showconfig.aspx检查爬虫程序的根设置是否未被覆盖?很高兴这是解决方案,顺便说一句,您可以勾选正确答案。
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)