范围查询

执行数值范围查询

对数字字段的范围查询返回介于给定起始值和结束值之间的值:

FT.SEARCH index "@field:[start end]"

你也可以使用FILTER参数,但你需要知道查询执行计划是不同的,因为过滤器是在查询字符串(例如*)被评估后应用的:

FT.SEARCH index "*" FILTER field start end

开始和结束值

开始和结束值默认是包含的,但你可以在值前加上(来将其从范围中排除。

-infinf+inf 是有效值,允许您定义开放范围。

结果集

开放范围查询可能导致结果集过大。

默认情况下,FT.SEARCH 只返回前十个结果。LIMIT 参数帮助您滚动浏览结果集。SORTBY 参数确保结果集中的文档按指定顺序返回。

FT.SEARCH index "@field:[start end]" SORTBY field LIMIT page_start page_end

您可以在[FT.SEARCH命令参考](/commands/ft.search/)中找到关于使用LIMITSORTBY的更多详细信息。

示例

本节中的示例使用具有以下字段的模式:

字段名称 字段类型
price NUMERIC

以下查询找到价格范围大于或等于500美元且小于或等于1000美元的自行车(500 <= price <= 1000):

这在语义上等同于:

对于价格大于1000美元的自行车(price > 1000),您可以使用:

下面的示例通过返回五辆最便宜的自行车,返回价格低于或等于2000美元的自行车(price <= 2000):

非数字范围查询

您可以在专门的文章中了解更多关于非数字范围查询的信息,例如地理空间向量搜索查询。

RATE THIS PAGE
Back to top ↑