Redis®*: 对文档建立索引与搜索
本文档属于搜索与 JSON指南的一部分。您可以在此处查看完整指南:使用 Redis 查询引擎高效存储和查询 JSON 文档。
👋 欢迎查阅 Stackhero 文档!
Stackhero 提供即开即用的 Redis cloud 解决方案,带来多项优势,包括:
- 集成
Redis CommanderWeb 管理界面。- 无限制的消息大小与传输。
- 一键完成升级,操作便捷。
- 基于专属私有基础设施,实现卓越性能与强大安全性。
节省时间,简化运维:仅需 5 分钟即可体验 Stackhero 的 Redis cloud 托管 方案!
您只需声明一次索引,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
现在您可以执行如下查询:
# 对名称进行全文搜索,并限定价格区间
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 和标准字段名。