RediSearch 2.8 发行说明
RESP3 支持。Geo Polygon 搜索。性能改进。
Redis 堆栈 |
---|
要求
RediSearch v2.8.25 需要:
- 最低 Redis 兼容版本(数据库):7.2
- 最低 Redis 企业软件版本(集群):7.2.4
v2.8.25(2025 年 3 月)
这是 RediSearch 2.8 的维护版本。
更新紧急度:HIGH
:存在可能影响用户子集的严重错误。升级!
错误修复:
- #5709如果使用
SCORER BM25
(型号-7896) - 排名 #5788Cursor 替换为
SORTBY
永远不会耗尽,如果达到游标限制,则会阻止查询 (MOD-8483) - 排名 #5788由于
TIMEOUT
便ON_TIMEOUT
设置为RETURN
(MOD-8482) - 排名 #5788RESP3 打开的光标
FT.AGGREGATE
永远不会耗尽,如果游标达到限制,则会阻止查询 (MOD-8515) - 排名 #5788用
FT.CURSOR READ
在超时导致结果少于预期结果的查询上 (MOD-8606) - #5810这
total_results
字段的FT.AGGREGATE
命令在 RESP3 中不正确 (MOD-9054)
改进:
- 排名 #5788更正了防止过早释放的协调器争用条件,避免了查询执行过程中的错误和不一致 (MOD-8794)
v2.8.24(2025 年 2 月)
这是 RediSearch 2.8 的维护版本。
更新紧急度:LOW
除非有您想要使用的新功能,否则无需升级。
错误修复:
- #5647
FT.SEARCH
使用西里尔字符和通配符不产生任何结果 (MOD-7944)
v2.8.23(2025 年 2 月)
这是 RediSearch 2.8 的维护版本。
更新紧急度:HIGH
:存在可能影响用户子集的严重错误。升级!
错误修复:
- 编号 #5605更改内存块读取逻辑可能会导致
FT.SEARCH
错误“Redis 7.4.2 因信号:11、si_code:128 崩溃"
已知限制:
-
在摄取过程中,只有字符串字段的前 128 个字符被规范化为小写(例如,在
HSET
). 例:HSET doc __score 1.0 name "idx1S...S" mynum 1 # Assume "S...S" is a string of 252 capital S's FT.CREATE "idx" SCHEMA "name" "TEXT" "mynum" "NUMERIC" FT.SEARCH "idx" "@name:idx1S...S" # Assume "S...S" is a string of 252 capital S's
这
FT.SEARCH
命令将不返回任何文档。
v2.8.22(2025 年 1 月)
这是 RediSearch 2.8 的维护版本。
更新紧急度:HIGH
:存在可能影响用户子集的严重错误。升级!
错误修复:
v2.8.21(2025 年 1 月)
这是 RediSearch 2.8 的维护版本。
更新紧急度:SECURITY
:此版本中有安全修复程序。
安全和隐私:
- #5457 (CVE-2024-51737) 查询:可能越界写入 (MOD-8486)
错误修复:
- 排名 #5299长度超过 1024 个字符的前缀/中缀/后缀查询可能会导致崩溃 (MOD-7882)
- 排名 #5303在后台索引时过期的密钥可能会导致在使用
replicaof
(MOD-7949) - #5280
FT.CURSOR READ
检索已删除TAG
字段导致崩溃 (MOD-8011) - #5427
FT.AGGREGATE
在数值字段上导致failed_calls
集群数据库的计数增加 (MOD-8058) - 排名 #5242内存计数
bytes_collected
通过缺失值的索引排错程序(MOD-8097、MOD-8114) - 排名 #5167超时查询中的游标未耗尽,导致可用游标数耗尽 (MOD-8009)
改进:
- 排名 #5260优化索引仅在写入作时创建时消耗内存 (MOD-8125)
v2.8.17(2024 年 8 月)
这是 RediSearch 2.8 的维护版本。
更新紧急度:HIGH
:存在可能影响用户子集的严重错误。升级!
-
错误修复:
v2.8.16(2024 年 8 月)
这是 RediSearch 2.8 的维护版本。
更新紧急度:HIGH
:存在可能影响用户子集的严重错误。升级!
-
错误修复:
v2.8.15(2024 年 7 月)
更新紧急度:HIGH
:存在可能影响用户子集的严重错误。升级!
-
错误修复:
-
改进:
v2.8.14(2024 年 6 月)
这是 RediSearch 2.8 的维护版本。
更新紧急度:MODERATE
:对服务器进行升级编程,但这不是紧急的。
-
错误修复:
-
改进:
v2.8.13(2024 年 3 月)
这是 RediSearch 2.8 的维护版本。
更新紧急度:HIGH
:存在可能影响用户子集的严重错误。升级!
详:
-
错误修复:
- #4481查询语法
GEOSHAPE
只接受 prefix 而不是 complete 谓词 (MOD-6663) - #4513
FT.CURSOR READ
在导致崩溃的数字查询中 (MOD-6597) - #4534
FT.PROFILE
参数不正确可能会导致集群设置崩溃 (MOD-6791) - #4530某些仅使用前缀而不是完整值的参数设置有效 (MOD-6709)
- #4539在加载新 RDB 时重新索引时,如果内存不可用,则可能导致崩溃(MOD-6831、6810)
- #4498向量预过滤查询(混合查询)超时,导致在尝试编写新文档时因死锁而崩溃(MOD-6510、MOD-6244)
- #4495
FT.SEARCH
如果使用已弃用的FT.ADD
命令 (MOD-6599)
- #4481查询语法
-
改进:
v2.8.12(2024 年 3 月)
这是 RediSearch 2.8 的维护版本。
更新紧急度:MODERATE
:对服务器进行升级编程,但这不是紧急的。
详:
-
错误修复:
-
改进:
- #4313用于查询的内存的内存分配模式
GEOSHAPE
类型 (MOD-6431)
- #4313用于查询的内存的内存分配模式
v2.8.11(2024 年 1 月)
这是 RediSearch 2.8 的维护版本。
更新紧急度:MODERATE
:对服务器进行升级编程,但这不是紧急的。
详:
-
错误修复:
-
改进:
- 排名 #4264上报告计数器的时间粒度
FT.PROFILE
(型号-6002)
- 排名 #4264上报告计数器的时间粒度
v2.8.10(2024 年 1 月)
这是 RediSearch 2.8 的维护版本。
更新紧急度:HIGH
:存在可能影响用户子集的严重错误。升级!
详:
-
错误修复:
- #4287从副本同步时,重新索引过程会因内部索引变量初始化而导致崩溃(MOD-6337、MOD-6336)
- 排名 #4249集群设置上的内存跟踪导致高内存使用率和潜在的内存不足(MOD-6123、MOD-5639)
- 排名 #4244分析
FT.AGGREGATE
使用WITHCURSOR
带有子句的标志会导致超时而崩溃 (MOD-5512)-
- 排名 #3916到期
JSON
文档,导致因死锁而崩溃(MOD-5769、MOD-5895、MOD-6189、MOD-5895) - 排名 #4235由倒排索引树上的不平衡节点导致数据库内存过度增长(MOD-5880、MOD-5952、MOD-6003)
- 排名 #4190分析
FT.AGGREGATE
导致 RESP3 回复崩溃(MOD-6250、MOD-6295) - #4148, #4038
ON_TIMEOUT FAIL\RETURN
未遵循群集设置中的策略(MOD-6035、MOD-5948、MOD-6090) - #4110超时时错误响应的格式包含不一致(MOD-6011、MOD-5965)
- #4104
FT.SEARCH
在 Amazon Linux 2 上使用 TLS 加密时没有响应 (MOD-6012) - 排名 #4009在群集设置中不会返回 的超时错误
FT.SEARCH
(模组-5911) - #3920在群集设置中不会返回 的超时错误
FT.AGGREGATE
(MOD-5209) - #3914
FT.CURSOR READ
在游标读取之间更新数据时,地理查询会导致崩溃 (MOD-5646) - 排名 #4220删除索引后尝试运行 ForkGC(垃圾回收例程)时,服务器崩溃 (MOD-6276)
-
改进:
- #3682报告最后一个键错误和字段类型索引失败
FT.INFO
(MOD-5364) - 排名 #4236在
FT.INFO
报告 (MOD-6198) - 排名 #4196检查结果处理后是否超时
FT.SEARCH
在集群设置中 (MOD-6278) - 排名 #4164报告
TIMEOUT
,MAXPREFIXEXPANSION
RESP3 回复中的警告 (MOD-6234) - 排名 #4165指示超时
FT.PROFILE
报告 (MOD-6184) - 排名 #4149指示从 Cursor on 开始超时
FAIL
超时策略 (MOD-5990) - #4147初始化最大数值范围,从而更好地平衡索引叶子拆分 (MOD-6232)
- 排名 #3940谓词包含多个时的查询优化
INTERSECTION
(和) 的UNION
(或)(MOD-5910) - 排名 #4059在遇到超时时返回游标 ID,当策略为
ON_TIMEOUT RETURN
(型号-5966) - 排名 #4006索引名称别名验证可能存在问题 (MOD-5945)
- #3682报告最后一个键错误和字段类型索引失败
v2.8.9(2023 年 10 月)
这是 RediSearch 2.8 的维护版本。
更新紧急度:HIGH
:存在可能影响用户子集的严重错误。升级!
详:
-
错误修复:
-
改进:
v2.8.8(2023 年 9 月)
这是 RediSearch 2.8 的维护版本。
更新紧急度:SECURITY
:此版本中有安全修复程序。
详:
-
安全和隐私:
-
错误修复:
- #3771破碎
lower()
和upper()
函数APPLY
stage inFT.AGGREGATE
在DIALECT 3
(型号-5041) - 排名 #3752设置低
MAXIDLE
parameter 值FT.AGGREGATE
导致崩溃 (MOD-5608) - 排名 #3780文档长度计算错误导致分数值不正确 (MOD-5622)
- #3808
LOAD
step 之后的FILTER
Step 可能会导致FT.AGGREGATE
(模组-5267) - #3823
APPLY
或FILTER
解析器泄漏 (MOD-5751) - 排名 #3837在 Redis 7.2 上使用 TLS 的连接失败 (MOD-5768)
- #3856向 OSS 集群添加新节点导致崩溃 (MOD-5778)
- 排名 #3854由于内存损坏,矢量范围查询可能会导致内存不足 (MOD-5791)
- #3771破碎
-
改进:
- 排名 #3534向量相似度 0.7.1 (MOD-5624)
v2.8 GA (v2.8.4)(2023 年 7 月)
这是 RediSearch 2.8 的正式发布版本。
标题
RediSearch 2.8 引入了对 RESP3 的支持、新功能、性能改进和错误修复。
2.8.4 中的新增功能
这个新的主要版本引入了新的和经常请求的 Geo Polygon Search,添加了GEOSHAPE
字段类型,该类型支持使用 WKT 表示法的多边形形状。除了当前的GEO
(别名GEOPOINT
),则添加了对POLYGON
和POINT
作为新的几何图形格式(新的GEOSHAPE
).此外,2.8 还为SORT BY
作FT.SEARCH
和FT.AGGREGATE
和 newFORMAT
的增强响应FT.SEARCH
和FT.AGGREGATE
仅在 RESP3 中。
特征:
-
引入对 geo 多边形形状和查询的支持:
-
添加
GEOSHAPE
field 类型来映射SCHEMA
上FT.CREATE
(型号-4798) -
支持多边形
POLYGON
和POINT
使用 WKT 表示法,例如POLYGON((lon1 lat1, lon2 lat2, ...))
-
调整查询语法
FT.SEARCH
对于使用谓词的多边形@geom:[OPERATOR $poly]
并将 WKT 格式的多边形定义为PARAMS 2 poly "POLYGON((10 20, ...))"
用DIALECT 3
-
最初
WITHIN
和CONTAINS
运算符替换为GEOSHAPES
目前 -
支持多种坐标系:带标志的笛卡尔 (X,Y)
FLAT
对于平地和地理 (LON, LAT),使用标志SPHERICAL
(MOD-5303 的)。使用球面索引作为默认 (SPHERICAL
) -
在
FT.INFO
响应报告 (MOD-5278)
-
-
为 上的排序作引入性能优化
FT.SEARCH
和FT.AGGREGATE
作为默认值DIALECT 4
.它将在 4 种不同的场景中提高性能,如下所示:-
Skip Sorter - 在没有任何类型的情况下应用。查询到达
LIMIT
请求的结果。 -
部分范围 - 当存在
SORTBY
如果数值字段没有筛选条件或按同一数值字段进行筛选,则查询将迭代足够大的范围以满足LIMIT
请求的结果。 -
Hybrid - 在存在
SORTBY
一个数字字段以及另一个非数字过滤器。某些结果将被筛选,并且初始范围可能不够大。然后,迭代器使用以下范围倒带,并进行额外的迭代以收集LIMIT
请求的结果。 -
无优化 - 如果存在按分数或按非数字字段排序,则除了检索所有结果并比较其值外,别无选择。
-
-
加
WITHCOUNT
参数,该参数允许通过排序返回查询结果的准确计数。此作处理所有结果以获得准确的计数,其性能低于优化选项(默认行为为DIALECT 4
) (MOD-5311) -
新增功能
FORMAT
argument 在FT.SEARCH
和FT.AGGREGATE
以 JSON 字符串或 RESP3 分层结构(仅限 RESP3)检索结果 (MOD-5390)
改进(自 2.8.3 起):
-
#3717 - 顺时针方向的多边形形状验证和方向校正 (MOD-5575)
-
#3657 - 允许对架构中的所有分层索引进行 GC 调用
-
#3701 - HNSW 现在使用数据块而不是数组来存储向量和元数据
更改的行为:
-
Redis 内部的语义版本控制版本为 2.8.4。由于 Redis 中的模块版本是数字,因此我们无法添加 GA 标志。
-
最小 Redis 版本:7.2
-
如果索引和查询 RedisJSON 数据结构,此版本最好与 RedisJSON 2.6(v2.6.0 及更高版本)结合使用。