#elasticsearch #nest
#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))));
Меня интересует общее количество обращений для запроса (т. Е. не ограниченное размером), чтобы я мог разобраться с нумерацией страниц во внешнем интерфейсе. Кто-нибудь знает, как я могу это сделать?
Ответ №1:
Вы ищете Total
свойство для объекта search response. Взгляните.
Итак, в вашем конкретном случае это будет response.Total
.
Ответ №2:
Для тех, кто работает с индексами с более чем 10000 документами, Elasticsearch по умолчанию рассчитает общее количество обращений до 10000. Чтобы обойти это, включите .TrackTotalHits(true)
в свой запрос:
var resp = client.Search<yourmodel>(s => s
.Index(yourindexname)
.TrackTotalHits(true)
.Query(q => q.MatchAll()));