Redis搜索tag类型字段含特殊字符值无法精确匹配求助
RedisSearch Tag字段精确匹配问题解决
问题分析
你遇到的问题是RedisSearch中TAG类型字段website无法精确匹配,本质是终端shell的转义干扰导致Redis收到的查询值与存储值不一致,而非TAG字段本身的语法问题。
解决方案
1. 正确的查询命令
在终端执行时,用单引号包裹查询字符串,避免shell解析转义字符:
FT.SEARCH contact '@website:{https://dan.white.com}'
如果直接在Redis-cli交互环境中执行,无需额外转义,直接运行:
FT.SEARCH contact @website:{https://dan.white.com}
2. 验证存储值
先确认哈希对象中website字段的实际值是否正确:
HGETALL id:contact:dacd5f23-e493-4db1-b1b9-74a6783b41b5
返回结果中需确保website对应的值是https://dan.white.com,无额外转义字符。
3. 确认索引定义
检查索引创建语句,确保website被正确定义为TAG类型:
FT.CREATE contact ON HASH PREFIX 1 id:contact: SCHEMA FirstName TEXT LastName TEXT website TAG
默认TAG字段的分隔符是逗号,你的URL中无逗号,无需额外配置分隔符。
内容的提问来源于stack exchange,提问作者user732456
相关产品推荐
相关产品推荐

