0

Aggregate调用函数时有没有办法获得总结果数?

请注意,我不是使用Aggregate函数来聚合结果,而是作为高级搜索查询,因为Search函数不允许按多个字段排序。

RediSearch 返回匹配的文档总数,但我找不到使用 NRediSearch 库获取此数字的方法。

4

1 回答 1

1

使用 NRediSearch

使用 NRediSearch,您将需要构建和执行将运行 GROUPBY 0 和 COUNT reducer 的聚合,假设您有一个person-idx索引并且您想要计算PersonRedis 中的所有文档:

var client = new Client("person-idx", muxer.GetDatabase());
var result = await client.AggregateAsync(new AggregationBuilder().GroupBy(new List<string>(), new List<Reducer>{Reducers.Count()}));
Console.WriteLine(result.GetResults().First().Values.First());

将得到您正在寻找的计数。

使用 Redis.OM

有一个更新的库Redis.OM,您还可以使用它来使这些聚合更简单一些,同样的操作可以通过以下方式完成:

var peopleAggregations = provider.AggregationSet<Person>();
Console.WriteLine(peopleAggregations.Count());
于 2021-12-07T20:53:42.563 回答