范围查询

执行数字范围查询

对数字字段执行范围查询会返回位于给定起始值和结束值之间的值

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)的自行车,按价格从低到高返回最便宜的五辆

非数字范围查询

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

评价此页面
返回顶部 ↑