在Lucene.Net中,可以使用TopDocs.TotalHits属性检索匹配文档的总数. 此功能was exposed in the Advanced Database Crawler API使用QueryRunner类中的out参数. 使用Sitecore 7的新LINQ API检索总结果计数的推荐方法是
此功能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.