Sitecore 7 ContentSearchManager没有结果

时间:2013-12-27 14:18:05

标签: c# search sitecore sitecore7 sitecore7.1

我已在我的开发环境中升级到Sitecore 7.1并重构应用程序中获取项目的某些区域,尝试使用新的ContentSearchManager。通过代码或通过LinqPad我没有得到任何结果,但在使用Luke进行调试时,索引确实有项目。

测试不返回任何内容的代码:

var index = ContentSearchManager.GetIndex("sitecore_master_index");
using (var context = index.CreateSearchContext())
{
      context.GetQueryable<SearchResultItem>().Where (item  => item.Name == "Home");
}

有人能告诉我调试的最佳方法吗?

1 个答案:

答案 0 :(得分:2)

您的代码似乎不完整。我希望看到以下内容:

public IEnumerable<Item> GetItems()
{
    var index = ContentSearchManager.GetIndex("sitecore_master_index");
    using (var context = index.CreateSearchContext())
    {
        IQueryable<SearchResultItem> query = context.GetQueryable<SearchResultItem>().Where (item  => item.Name == "Home");

        SearchResults<SearchResultItem> results = query.GetResults();

        return results.Hits.Select(hit => hit.Document.GetItem());
    }
}

如果不成功,您应该能够在Visual Studio中调试query对象时看到原始Lucene查询。我建议验证该查询是否与您在Luke中运行的查询匹配。 API可能会在您的查询中应用其他过滤器表达式。