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 参数,以免查询退化。
相关推荐
牛奶16 分钟前
AI辅助开发的基础概念
前端·人工智能·ai编程
摸鱼的春哥19 分钟前
Agent教程15:认识LangChain,Agent框架的王(上)
前端·javascript·后端
明月_清风1 小时前
自定义右键菜单:在项目里实现“选中文字即刻生成新提示”
前端·javascript
明月_清风1 小时前
告别后端转换:高质量批量导出实战
前端·javascript
刘发财6 小时前
弃用html2pdf.js,这个html转pdf方案能力是它的几十倍
前端·javascript·github
牛奶8 小时前
2026年大模型怎么选?前端人实用对比
前端·人工智能·ai编程
牛奶8 小时前
前端人为什么要学AI?
前端·人工智能·ai编程
地平线开发者10 小时前
SparseDrive 模型导出与性能优化实战
算法·自动驾驶
董董灿是个攻城狮11 小时前
大模型连载2:初步认识 tokenizer 的过程
算法
Kagol11 小时前
🎉OpenTiny NEXT-SDK 重磅发布:四步把你的前端应用变成智能应用!
前端·开源·agent