NRediSearch - 获取匹配的文档总数

NRediSearch - Getting total documents matched count

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

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

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

使用 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

有一个较新的库 Redis.OM,您也可以使用它来使这些聚合更简单一些,可以使用以下方法完成相同的操作:

var peopleAggregations = provider.AggregationSet<Person>();
Console.WriteLine(peopleAggregations.Count());