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 参数,以免查询退化。
相关推荐
随意起个昵称7 分钟前
【递归】二进制字符串中的第K位
c++·算法
mjhcsp1 小时前
C++ 循环结构:控制程序重复执行的核心机制
开发语言·c++·算法
立志成为大牛的小牛1 小时前
数据结构——四十一、分块查找(索引顺序查找)(王道408)
数据结构·学习·程序人生·考研·算法
岁月宁静1 小时前
AI 多模态全栈应用项目描述
前端·vue.js·node.js
xier_ran1 小时前
深度学习:RMSprop 优化算法详解
人工智能·深度学习·算法
地平线开发者1 小时前
不同传感器前中后融合方案简介
算法·自动驾驶
地平线开发者1 小时前
征程 6X 常见 kernel panic 问题
算法·自动驾驶
nn_(nana)1 小时前
修改文件权限--- chmod ,vi/vim,查看文件内容,yum-软件包管理器,systemctl管理系统服务
前端
烛阴2 小时前
从零开始掌握C#核心:变量与数据类型
前端·c#