在我的应用程序中,有一个查询将返回的命中数限制为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))));
我感兴趣的是查询的总命中数(即不限于大小),这样我就可以在前端处理分页。有人知道我怎么做吗?
发布于 2019-04-01 02:14:07
您正在搜索响应对象上查找Total
属性。Have a look。
因此,在您的特定情况下,它将是response.Total
。
发布于 2020-05-15 07:29:25
对于那些使用超过10000个文档的索引的人,Elasticsearch将默认计算总命中率高达10000。要解决此问题,请在查询中包含.TrackTotalHits(true)
:
var resp = client.Search<yourmodel>(s => s
.Index(yourindexname)
.TrackTotalHits(true)
.Query(q => q.MatchAll()));
https://stackoverflow.com/questions/55441492
复制相似问题