如何在Redis Search中使用OR逻辑查询两个不同字段?
正确的RedisSearch查询命令
要查询redisData中满足id1=1或者id2=2的数据,你需要使用RedisSearch正确的逻辑OR语法,每个条件需用括号包裹以避免解析歧义。
正确命令写法
使用|作为OR操作符:
FT.SEARCH idx:redisData "(@id1:{1}) | (@id2:{2})"
或者使用OR关键字(效果完全一致):
FT.SEARCH idx:redisData "(@id1:{1}) OR (@id2:{2})"
关键注意事项
- 必须为每个条件单独添加括号,这是RedisSearch解析逻辑表达式的硬性要求,你之前的错误写法正是因为缺少括号导致语法无效
- 匹配语法要和字段索引类型对应:
- 如果
id1/id2是TAG类型,用{}包裹值(如@id1:{1}) - 如果是NUMERIC类型,需改用范围匹配语法
@id1:[1 1](表示精确等于1)
- 如果
- 确保
idx:redisData索引已正确创建,且id1、id2被包含在索引的可搜索字段中
内容的提问来源于stack exchange,提问作者user3533755
相关产品推荐
相关产品推荐

