我正在尝试运行聚合查询,同时还检查哈希的位置是否在边界框中。
我的哈希:
FT.CREATE idx ON HASH PREFIX 1 "managmentScan:" SCHEMA bin NUMERIC SORTABLE x NUMERIC SORTABLE y NUMERIC SORTABLE grade NUMERIC SORTABLE latest_mngmt TAG SORTABLE
HSET managmentScan:123 bin 123 x 50 y 15 grade 20 latest_mngmt "owner123"
所以我尝试像这样进行过滤并不断收到错误:
> FT.AGGREGATE idx "*" FILTER "@x > 0 AND @x < 100 AND @y > 0 AND @y < 100" GROUPBY 1 @latest_mngmt REDUCE AVG 1 @grade AS average_grade SORTBY 2 @average_grade ASC LIMIT 0 5
"Syntax error at offset 7 near 'AND'"
> FT.AGGREGATE idx "*" FILTER "@x > 0 x < 100 @y > 0 @y < 100" GROUPBY 1 @latest_mngmt REDUCE AVG 1 @grade AS average_grade SORTBY 2 @average_grade ASC LIMIT 0 5
"Syntax error at offset 7 near 'x'"
> FT.AGGREGATE idx "*" FILTER "@x:[0 50] AND @y:[0 50]" GROUPBY 1 @latest_mngmt REDUCE AVG 1 @grade AS average_grade SORTBY 2 @average_grade ASC LIMIT 0 5
"Syntax error at offset 4 near '0'"
当我只尝试一个过滤器时,它在这里工作:
> FT.AGGREGATE idx "*" FILTER "@x > 0" GROUPBY 1 @latest_mngmt REDUCE AVG 1 @grade AS average_grade SORTBY 2 @average_grade ASC LIMIT 0 5
1) "1"
2) 1) "latest_mngmt"
2) "owner123"
3) "average_grade"
4) "20"
有谁知道这是为什么吗?
我尝试用 && 替换 AND,现在似乎可以工作了。不知道为什么网上找不到。
> FT.AGGREGATE idx "*" FILTER "@x > 0 && @x < 100 && @y > 0 && @y < 100" GROUPBY 1 @latest_mngmt REDUCE AVG 1 @grade AS average_grade SORTBY 2 @average_grade ASC LIMIT 0 5
1) "1"
2) 1) "latest_mngmt"
2) "owner123"
3) "average_grade"
4) "20"