Elasticsearch 5.4中使用NEST for .NET进行分页

4

我知道,我很蠢,看不出来怎么做,但我对elasticsearch很新。

我想知道如何做一个简单的分页。

例如:1到10条,共 123,456 条记录

我需要知道查询的总命中数,有意义吧?

    public long GetCount(SearchModel model)
    {
        return _elasticClient.Search<Document>(s => s
            .Query(q => GetWhere(q, model))
        ).Total;

    }

我没有使用From/Size,因为我想获取查询的总记录数(就是这么简单)。

我尝试了ISearchResponse.Total,但它会忽略查询过滤器。

非常感谢任何建议!

1个回答

5

当您进行简单的文档搜索时,可能只需要使用 FromSize 进行分页。返回的结果应该有一个 hits.total 表示,它是与您的查询匹配的文档总数。 但是 hits 集合只会有 10 个文档或者您在 (size) 中定义的数量。

From/Size 的示例:

var response = client.Search<Tweet>(s => s
.From(0)
.Size(10)
.Query(q =>
        q.Term(t => t.User, "kimchy")
        || q.Match(mq => mq.Field(f => f.User).Query("nest"))
    )
);

response.HitsMetaData.Total 应该包含找到的文档总数。


请使用小写字母'd'来表示'HitsMetadata'。 - SalmanAA

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接