如何用RedisSearch检索RedisJSON中的对象数组?
Redis JSON索引无结果问题解决与价格检索实现
问题根源
你创建索引时使用的路径$.myDoc.books.price存在错误:myDoc是Redis的键名,并非JSON文档内部的字段,JSON文档的根路径为$;同时需要用[*]遍历books数组中的每个元素,才能正确索引数组内对象的price字段。
正确操作步骤
1. 创建正确的索引
执行以下命令创建索引,确保路径指向数组内的每个价格字段:
FT.CREATE docIdx ON JSON SCHEMA $.books[*].price AS price NUMERIC
如果需要同时索引书籍标题,可扩展索引:
FT.CREATE docIdx ON JSON SCHEMA $.books[*].title AS title TEXT $.books[*].price AS price NUMERIC
2. 执行检索查询
使用以下命令检索价格≥8的书籍记录:
FT.SEARCH docIdx '@price:[8 +inf]'
若需仅返回标题和价格字段,可添加RETURN参数:
FT.SEARCH docIdx '@price:[8 +inf]' RETURN 2 title price
3. 验证文档存在性(可选)
若仍有疑问,可先确认JSON文档已正确存入Redis:
JSON.GET myDoc
内容的提问来源于stack exchange,提问作者Benson OO
相关产品推荐
相关产品推荐

