Aggregate
调用函数时有没有办法获得总结果数?
请注意,我不是使用Aggregate
函数来聚合结果,而是作为高级搜索查询,因为Search
函数不允许按多个字段排序。
RediSearch 返回匹配的文档总数,但我找不到使用 NRediSearch 库获取此数字的方法。
Aggregate
调用函数时有没有办法获得总结果数?
请注意,我不是使用Aggregate
函数来聚合结果,而是作为高级搜索查询,因为Search
函数不允许按多个字段排序。
RediSearch 返回匹配的文档总数,但我找不到使用 NRediSearch 库获取此数字的方法。
使用 NRediSearch,您将需要构建和执行将运行 GROUPBY 0 和 COUNT reducer 的聚合,假设您有一个person-idx
索引并且您想要计算Person
Redis 中的所有文档:
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,您还可以使用它来使这些聚合更简单一些,同样的操作可以通过以下方式完成:
var peopleAggregations = provider.AggregationSet<Person>();
Console.WriteLine(peopleAggregations.Count());