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 会展开大量词条;生产环境应设好 MINPREFIX、MAXEXPANSIONS 或使用 WITHSUFFIXTRIE。
  2. 纯负查询 -term 可能触发全量扫描。
  3. 合理为数值、标签、Geo、向量字段建索引& HNSW 参数,以免查询退化。
相关推荐
IT_陈寒9 小时前
Vite静态资源导入这个坑我帮你们踩过了
前端·人工智能·后端
潼心1412o9 小时前
C++初阶(长期更新)第6讲:类和对象(下)
开发语言·c++·算法
广州华水科技9 小时前
大坝安全监测解决方案:单北斗GNSS形变监测系统应用与维护
前端
星光开发者10 小时前
基于决策树随机森林算法的小说推荐系统的设计与实现-计算机毕设【课程设计】78485
vue.js·算法·微信小程序·django·php·课程设计·express
-森屿安年-10 小时前
按身高排序
c++·算法
程序员清风10 小时前
算法与数据结构入门:复杂度、数组与链表
数据结构·算法·链表
yivifu10 小时前
中文古籍电子书注释集成
前端·javascript·python·beautifulsoup·epub
无定义_10 小时前
Codeforces Round 1124 (Div. 2)
算法
默_笙11 小时前
🛴 从散件到整机:DeepAgents 与 Agent 身上预留的那些"插槽"(前置介绍)
前端·javascript
zhangzeyuaaa11 小时前
深入理解 Ruby 运算符:本质、分类、坑点与重载实战
开发语言·前端·ruby