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

Redis Hash嵌套对象查询:如何用FT.Search筛选wireless为true的数据

正确查询Redis Hash中嵌套布尔字段的方法
  • 修正字段路径错误
    你当前查询用的@colors.wireless完全不对,目标字段实际是connection.wireless,先把字段路径改过来。

  • 确保索引已正确定义嵌套字段
    因为你用Hash存储数据,Redis Search需要在创建索引时明确声明嵌套结构的字段。比如创建索引的命令要包含嵌套字段的定义:

    FT.CREATE idx:headphones ON HASH PREFIX 1 headphones: SCHEMA connection.wireless BOOLEAN connection.type TEXT name TEXT description TEXT price NUMERIC stock NUMERIC colors TAG embedding VECTOR FLAT 6 DIM 4 DISTANCE_METRIC L2
    

    核心是connection.wireless BOOLEAN这部分,要和你Hash中存储的键名对应(比如你存Hash时,嵌套的wireless字段对应的键名得是connection.wireless)。

  • 正确的查询语句
    查询布尔值不需要加引号,直接写对应的布尔值即可。用Node.js Redis客户端的正确写法:

    await this.client.ft.search(index, `@connection.wireless:${wirelessStatus}`);
    

    比如当wirelessStatus为true时,实际执行的查询条件就是@connection.wireless:true。

  • 额外注意点

    • 如果你的Hash存储时嵌套字段的键名是下划线分隔(比如connection_wireless),那索引定义和查询里的字段名也要改成对应的形式
    • Redis Search的布尔字段只识别小写的true/false,查询时别用大写或其他格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 08:26:04