范围查询
执行数值范围查询
对数值字段的范围查询将返回介于给定开始值和结束值之间的值:
FT.SEARCH index "@field:[start end]"
您还可以使用FILTER
参数,但您需要知道查询执行计划是不同的,因为过滤器是在查询字符串(例如 )被评估之后应用的:*
FT.SEARCH index "*" FILTER field start end
开始值和结束值
默认情况下,开始值和结束值是包含的,但您可以在值前面加上值以将其从范围中排除。(
值-inf
,inf
和+inf
是允许您定义开放范围的有效值。
结果集
开放范围查询可能会导致较大的结果集。
默认情况下,FT.SEARCH
仅返回前 10 个结果。这LIMIT
参数可帮助您滚动浏览结果集。这SORTBY
参数确保结果集中的文档按指定顺序返回。
FT.SEARCH index "@field:[start end]" SORTBY field LIMIT page_start page_end
您可以找到有关使用LIMIT
和SORTBY
在 [FT.SEARCH
命令参考](/commands/ft.search/)。
例子
本节中的示例使用具有以下字段的架构:
字段名称 | 字段类型 |
---|---|
price |
NUMERIC |
以下查询查找价格范围大于或等于 500 美元且小于或等于 1000 美元 (500 <= price <= 1000
):
This is semantically equivalent to:
For bicycles with a price greater than 1000 USD (price > 1000
), you can use:
The example below returns bicycles with a price lower than or equal to 2000 USD (price <= 2000
) by returning the five cheapest bikes:
Non-numeric range queries
You can learn more about non-numeric range queries, such as geospatial or vector search queries, in their dedicated articles.
On this page