3

TopDocs.TotalHits在 Lucene.Net 中,可以使用该属性检索匹配文档的总数。

此功能在 Advanced Database Crawler API中使用outQueryRunner 类中的参数公开。

使用 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?

    ...
}
4

1 回答 1

7

试试这个:

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 的更多信息,您可以观看此会话并查看此 repo

于 2013-07-09T06:17:03.710 回答