当前位置 : 主页 > 网络推广 > seo >

如何从Sitecore 7 LINQ ContentSearch API中检索总结果计数?

来源:互联网 收集:自由互联 发布时间:2021-06-16
在Lucene.Net中,可以使用TopDocs.TotalHits属性检索匹配文档的总数. 此功能was exposed in the Advanced Database Crawler API使用QueryRunner类中的out参数. 使用Sitecore 7的新LINQ API检索总结果计数的推荐方法是
在Lucene.Net中,可以使用TopDocs.TotalHits属性检索匹配文档的总数.

此功能was exposed in the Advanced Database Crawler API使用QueryRunner类中的out参数.

使用Sitecore 7的新LINQ API检索总结果计数的推荐方法是什么?如果不枚举整个结果集,似乎不可能.这是我到目前为止:

var index = ContentSearchManager.GetIndex("sitecore_web_index");
using (var context = index.CreateSearchContext())
{
    var query = context.GetQueryable<SearchResultItem>()
                       .Where(item => item.Content == "banana");

    var totalResults = query.Count(); // Enumeration
    var topTenResults = query.Take(10); // Enumeration again? this can't be right?

    ...
}
试试这个:

using Sitecore.ContentSearch.Linq; // GetResults on IQueryable

var index = ContentSearchManager.GetIndex("sitecore_web_index");
using (var context = index.CreateSearchContext())
{
    var query = context.GetQueryable<SearchResultItem>()
                   .Where(item => item.Content == "banana");
    var results = query.GetResults();


    var totalResults = results.TotalSearchResults;
    var topTenResults = results.Hits.Take(10);

...
}

要获得有关sitecore和linq的更多信息,您可以观看this session并查看this repo.

网友评论