Redis查询status为‘ON’无结果,疑为保留字或操作问题
问题原因与解决方法
你猜的没错,ON确实是RediSearch的保留关键字——它属于逻辑操作符的一种(和AND/OR/NOT同类),直接写@$.status:ON时,RediSearch会把它当成查询逻辑的一部分,而非你要匹配的字面量值,自然查不到对应数据。
解决起来很简单,把要匹配的保留字用双引号包裹即可:
FT.SEARCH STATUSINDEX '@$.status:"ON"'
如果创建索引时给$.status指定了别名(比如用了AS status),也可以简化查询语句:
FT.SEARCH STATUSINDEX '@status:"ON"'
另外提醒下,除了ON,像OFF、NOT这类逻辑操作符也属于保留关键字,后续如果存储的值是这些词,同样需要用引号包裹才能正确匹配。
内容的提问来源于stack exchange,提问作者Wayne
相关产品推荐
相关产品推荐

