【问题标题】:How can I find the total hits for an Elastic NEST query?如何找到 Elastic NEST 查询的总命中数?
【发布时间】:2019-08-21 19:33:37
【问题描述】:

在我的应用程序中,我有一个查询,它将返回的命中数限制为 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))));

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

【问题讨论】:

    标签: elasticsearch nest


    【解决方案1】:

    您正在搜索响应对象上寻找Total 属性。 Have a look.

    所以在您的特定情况下,这将是 response.Total

    【讨论】:

      【解决方案2】:

      对于那些处理超过 10000 个文档的索引的人,Elasticsearch 将默认计算高达 10000 的总点击量。要解决这个问题,请在查询中包含 .TrackTotalHits(true)

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

      【讨论】:

        猜你喜欢
        • 2016-04-02
        • 2014-11-20
        • 2021-01-17
        • 1970-01-01
        • 2021-07-27
        • 1970-01-01
        • 2014-11-19
        • 2017-09-18
        • 1970-01-01
        相关资源
        最近更新 更多