You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用RediSearch搜索、分组并获取每组首个JSON文档

Redis Stack 实现搜索、分组并获取分组首个文档

问题说明

原索引中ItemDescription被定义为TAG类型,而TAG仅支持精确匹配/多值标签查询,无法实现"包含adidas"的全文搜索需求。因此需要先调整索引结构,再通过聚合查询完成分组和取首个文档的操作。

步骤1:重建索引(适配全文搜索)

先删除原索引,再创建新索引将ItemDescription改为TEXT类型:

FT.DROPINDEX Product-idx
FT.CREATE Product-idx ON JSON PREFIX 1 Product: SCHEMA 
  $.ItemCode AS ItemCode TAG 
  $.ItemDescription AS ItemDescription TEXT 
  $.Barcodes AS Barcodes TAG

步骤2:执行搜索、分组并获取每组首个文档

使用FT.AGGREGATE命令完成所有需求:

FT.AGGREGATE Product-idx '@ItemDescription:adidas' 
  GROUPBY 1 @ItemDescription 
  REDUCE FIRST_VALUE 1 '$' AS first_document 
  LIMIT 0 1000

命令解释

  • @ItemDescription:adidas:匹配ItemDescription字段中包含"adidas"的文档
  • GROUPBY 1 @ItemDescription:按ItemDescription字段分组
  • REDUCE FIRST_VALUE 1 '$' AS first_document:提取每组中的第一个完整JSON文档($代表整个JSON对象)
  • LIMIT 0 1000:返回前1000组结果,可根据实际需求调整数量

内容的提问来源于stack exchange,提问作者Tejaromalius

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 22:12:33