范围查询

执行数值范围查询

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

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

您可以找到有关使用LIMITSORTBY在 [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.

RATE THIS PAGE
Back to top ↑