3

Lucene.Net では、プロパティを使用して一致したドキュメントの総数を取得できTopDocs.TotalHitsます。

この機能は、QueryRunner クラスのパラメーターを使用して Advanced Database Crawler API で公開されました。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?

    ...
}
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 の詳細については、このセッションを見て、このレポを参照してください。

于 2013-07-09T06:17:03.710 に答える