Redis®*: 对文档建立索引与搜索
本文件是搜索与 JSON指南的一部分。您可以在这里查看完整指南:使用 Redis 查询引擎高效存储和查询 JSON 文档。
👋 欢迎来到 Stackhero 文档!
Stackhero 提供即开即用的 Redis cloud 解决方案,带来多项优势,包括:
- 集成
Redis Commander网页界面。- 无限制的消息大小与传输。
- 只需一键即可轻松完成更新。
- 依托专属私有基础设施,实现卓越性能与强大安全性。
节省时间,简化您的工作流程:只需 5 分钟即可体验 Stackhero 的 Redis cloud hosting 方案!
您只需声明一次索引。Redis 会自动为所有匹配指定前缀的 key(包括索引创建前已存在的 key)维护索引的实时更新。
FT.CREATE productsIndex
ON JSON
PREFIX 1 product:
SCHEMA
$.name AS name TEXT
$.brand AS brand TAG
$.price AS price NUMERIC SORTABLE
$.tags[*] AS tags TAG
现在,您可以执行如下查询:
# 对 name 字段进行全文搜索,并限定价格区间
FT.SEARCH productsIndex "@name:(espresso) @price:[0 500]"
# 精确匹配品牌,并按价格排序
FT.SEARCH productsIndex "@brand:{Bianca}" SORTBY price ASC
# 前缀搜索,适用于自动补全场景
FT.SEARCH productsIndex "@name:(espr*)"
Redis 还可以直接在索引上进行聚合分析,无需导出数据即可满足分析型查询需求:
FT.AGGREGATE productsIndex "*"
GROUPBY 1 @brand
REDUCE COUNT 0 AS products
REDUCE AVG 1 @price AS averagePrice
SORTBY 2 @products DESC
如果您以普通 hash 而非 JSON 存储数据,可以在 schema 中使用 ON HASH 和标准字段名。