RediSearch 查询语法速览

1 基本检索规则
功能 语法示例 说明
词交集 (AND) foo bar baz 多词即隐式 AND
短语 "hello world" 精确顺序匹配
并集 (OR) `hello hallo hola` ` ` 表示 OR(在 DIALECT 2+ 优先级更高)
否定 hello -world 仅排除 world(DIALECT 1 为整体否;DIALECT 2+ 只否定紧邻词)
通配符 hel*, *sun* 前/后/中缀匹配;受最小长度和最大展开数限制
通配符模式 "w'foo*bar?'" DIALECT 2+ "w''" 语法,支持 ? 单字符、* 多字符
模糊匹配 %hello%, %%hello%% Levenshtein 距离 1 或 2(最多 3)
可选词 foo ~bar bar 文档得分更高
括号分组 `(foo bar) baz` 消歧义、组合逻辑
2 字段过滤与多字段
text 复制代码
@title:"hello world"      // 只在 title 中找完整短语
@name:(James Brown)       // DIALECT 2+:等价 @name:James @name:Brown
@country:korea @engine:(hybrid|diesel) @class:suv
  • @field:expr 仅筛选指定字段
  • 多字段并集:@title|body:(hello world)
  • 重复字段过滤可做交集
3 数值 / 地理 / 标签过滤
text 复制代码
@price:[100 200]          // 数值范围 100~200(含端点)
@age:[(18 +inf]           // >18
@location:[-122.41 37.77 5 km]   // 半径 5 km
@cities:{New York | LA}   // Tag 字段 union
@cities:{NY} @cities:{LA} // Tag 字段交集
  • (N 表示排除端点;-inf / +inf 表示无穷
  • Tag 值需 {},多值 | 并集;重复 tag 子句做交集
  • GEO 支持半径;DIALECT 3 新增 GEOSHAPE 多边形包含/相交检索
4 向量检索 (v2.4+)
text 复制代码
*=>[KNN 10 @vec $q]                       // Top-10 最近邻
@year:[2020 2022]=>[KNN 10 @vec $q]       // 混合过滤
@vec:[VECTOR_RANGE 0.4 $q]                // 距离≤0.4
  • KNN 每次查询最多 1 条;VECTOR_RANGE 可多次
  • 可用 $yield_distance_as 指定距离字段以便排序返回
5 查询属性 (子句调权等)
text 复制代码
(foo bar) => { $weight: 2.0; $slop: 1; $inorder: true; }
  • $weight 调节相关度
  • $slop 允许词间距,$inorder 控制词序
  • Vector 查询可额外带自定义参数与距离字段名
6 SQL 谓词对照
SQL RediSearch
x='foo' AND y!='bar' @x:foo -@y:bar
num BETWEEN 10 AND 20 @num:[10 20]
name LIKE 'john%' @name:john*
更多...见官方对照表

性能提示

  1. 前/中/后缀与 wildcard 会展开大量词条;生产环境应设好 MINPREFIXMAXEXPANSIONS 或使用 WITHSUFFIXTRIE
  2. 纯负查询 -term 可能触发全量扫描。
  3. 合理为数值、标签、Geo、向量字段建索引& HNSW 参数,以免查询退化。
相关推荐
奔跑吧邓邓子3 分钟前
解锁决策树:数据挖掘的智慧引擎
人工智能·算法·决策树·机器学习·数据挖掘
蓝纹绿茶27 分钟前
【本机已实现】使用Mac部署Triton服务,使用perf_analyzer、model_analyzer
人工智能·算法·macos·机器学习
CSharp精选营34 分钟前
【好用推荐】免费在线图片压缩工具,附源码
前端·javascript·压缩图片
Mintopia36 分钟前
光影魔术师的进阶手册:探秘高级光照模型
前端·javascript
Mintopia39 分钟前
Three.js 奇幻物理世界:让你的 3D 物体跳起真实的华尔兹
前端·javascript
whyfail40 分钟前
Vite 的“心脏移植”:Rolldown
前端·vite
范纹杉想快点毕业1 小时前
Qt实现文本编辑器光标高亮技术
java·开发语言·c++·算法·系统架构
C羊驼1 小时前
C语言:二分搜索函数
算法
胡乱编胡乱赢1 小时前
最小化联邦平均(FedAvg)的算法开销
算法·最小化联邦平均·联邦平均
The_cute_cat1 小时前
25.6.19学习总结
学习·算法