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 参数,以免查询退化。
相关推荐
摸鱼的春哥4 分钟前
【编程】是什么编程思想,让老板对小伙怒飙英文?Are you OK?
前端·javascript·后端
尘世中一位迷途小书童4 分钟前
版本管理实战:Changeset 工作流完全指南(含中英文对照)
前端·面试·架构
尘世中一位迷途小书童8 分钟前
VitePress 文档站点:打造专业级组件文档(含交互式示例)
前端·架构·前端框架
甜瓜看代码9 分钟前
666
前端
吃饺子不吃馅14 分钟前
【八股汇总,背就完事】这一次再也不怕webpack面试了
前端·面试·webpack
Amos_Web21 分钟前
Rust实战教程--文件管理命令行工具
前端·rust·全栈
li理30 分钟前
鸿蒙相机开发入门篇(官方实践版)
前端
webxin66631 分钟前
页面动画和延迟加载动画的实现
前端·javascript
逛逛GitHub44 分钟前
这个牛逼的股票市场平台,在 GitHub 上开源了。
前端·github
清辞8531 小时前
C++入门(底层知识C与C++的不同)
开发语言·c++·算法