精确匹配查询

执行简单的精确匹配查询

精确匹配查询允许您选择所有字段与特定值匹配的文档。

您可以对多种字段类型使用精确匹配查询。查询语法因类型而异。

本文中的示例使用以下字段的架构

字段名称 字段类型
描述 文本
条件 标签
价格 数值

您可以在 快速入门指南 中找到有关创建索引和加载演示数据的更多详细信息。

数值字段

要在数值字段上执行精确匹配查询,您需要使用相同起始值和结束值构造范围查询

FT.SEARCH index "@field:[value value]"

or

FT.SEARCH index "@field:[value]" DIALECT 2

or

FT.SEARCH index "@field==value" DIALECT 2

关于范围查询的文章 中所述,您也可以使用 FILTER 参数

FT.SEARCH index "*" FILTER field start end

以下示例展示了如何查询价格正好为 270 美元的自行车

FT.SEARCH idx:bicycle "@price:[270 270]"
FT.SEARCH idx:bicycle "@price:[270]"
FT.SEARCH idx:bicycle "@price==270"
FT.SEARCH idx:bicycle "*" FILTER price 270 270

标签字段

标签是简短的文本序列,例如,“新的”或“洛杉矶”。

重要
如果您需要查询短文本,请使用标签查询而不是全文查询。标签字段在存储索引条目方面更节省空间,并且通常会导致精确匹配查询的查询复杂度更低。

您可以通过以下方式为单个标签构建标签查询

FT.SEARCH index "@field:{tag}"
注意
标签查询中必须使用花括号。

此简短示例展示了如何查询新的自行车

FT.SEARCH idx:bicycle "@condition:{new}"

对于包含特殊字符的标签,请使用双引号和 方言 2 进行精确匹配查询。在使用双引号引起来的标签进行查询时,唯一需要转义的字符是双引号字符。以下是如何使用包含特殊字符的双引号引起来的标签的示例

JSON.SET key:1 $ '{"email": "test@redis.com"}'
FT.CREATE idx ON JSON PREFIX 1 key: SCHEMA $.email AS email TAG

FT.SEARCH idx '@email:{"test@redis.com"}' DIALECT 2

全文字段

有关全文查询的详细说明,请参见 全文查询文档。您还可以查询文本字段中短语的精确匹配

FT.SEARCH index "@field:\"phrase\""
重要

短语必须用转义的双引号括起来以进行精确匹配查询。

您不能使用以 停用词 开头的短语。

以下是如何查找所有描述中包含“rough terrain”的自行车示例

FT.SEARCH idx:bicycle "@description:\"rough terrain\""
RATE THIS PAGE
Back to top ↑