如何找到 Elastic NEST 查询的总命中数?

Vin*_*mth 0 elasticsearch nest

在我的应用程序中,我有一个查询将返回的命中数限制为 50,如下所示

            var response = await client.SearchAsync<Episode>(s => s
                .Source(sf => sf
                     .Includes(i => i
                         .Fields(
                             f => f.Title,
                             f => f.PublishDate,
                             f => f.PodcastTitle
                         )
                     )
                     .Excludes(e => e
                         .Fields(f => f.Description)
                     )
                 )
                .From(request.Skip)
                .Size(50)
                .Query(q => q 
                    .Term(t => t.Title, request.Search) || q
                    .Match(mq => mq.Field(f => f.Description).Query(request.Search))));
Run Code Online (Sandbox Code Playgroud)

我对查询总命中数感兴趣(即不限于大小),以便我可以在前端处理分页。有谁知道我怎么能做到这一点?

Rob*_*Rob 6

您正在寻找Total搜索响应对象的属性。看看

因此,在您的特定情况下,将是response.Total.


Ker*_*rem 5

对于那些处理超过 10000 个文档的索引的人,Elasticsearch 默认情况下将计算最多 10000 个的总命中数。要解决这个问题,请.TrackTotalHits(true)在您的查询中包含:

var resp = client.Search<yourmodel>(s => s
    .Index(yourindexname)
    .TrackTotalHits(true)
    .Query(q => q.MatchAll()));
Run Code Online (Sandbox Code Playgroud)