我一直在尝试使游标与聚合一起工作,但发生了一些奇怪的事情。
我有一个redis数据库,索引名为idx:cits
,其中一个名为timestamp的字段被索引为NUMERIC。
FT.SEARCH idx:cits "@timestamp:[-inf inf]" LIMIT 0 0
它按预期工作并返回值12307(将查询设为预期的"*"
也是如此)
创建游标时出现问题
FT.AGGREGATE idx:cits "@timestamp:[-inf inf]" WITHCURSOR COUNT 500
它返回500个元素和游标ID,但是当我执行
FT.CURSOR READ idx:cits <cursorid>
总是返回一个0作为数组,一个0作为新的cursorID,表示它已经完成了所有元素的阅读,但仍然有11.807个匹配该查询的元素没有被读取。为什么会发生这种情况?无论我使用什么COUNT,对游标的后续调用都会产生相同的结果。
将聚合作为
FT.AGGREGATE idx:cits "*" WITHCURSOR COUNT 500
但是产生如预期那样工作的正确光标。
我正在使用docker镜像redis/redis-stack:7.0.6-RC 2,并将选项MAXSEARCHRESULTS
设置为-1
1条答案
按热度按时间zkure5ic1#
看起来像是rediSearch的一个bug:https://github.com/RediSearch/RediSearch/issues/3364