Как я могу найти общее количество обращений для запроса Elastic NEST?

#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()));