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)
  • 排名 #5788FT.CURSOR READ在超时导致结果少于预期结果的查询上 (MOD-8606)
  • #5810total_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:存在可能影响用户子集的严重错误。升级!

错误修复:

  • 排名 #5475NOSTEM 选项不适用于查询,只能进行分词 (MOD-7634)
  • 排名 #5542如果未读取最后一个块,则查询添加到索引的最新文档可能会导致崩溃 (MOD-8561)。

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:存在可能影响用户子集的严重错误。升级!

  • 错误修复:

    • #4941调整模块配置以避免集群数据库中第一个分片上的路由过载 (MOD-7505)
    • #4950 FT.PROFILEAGGREGATE数值查询可能会因重复使用内部CURSOR数值范围大 (MOD-7454)

v2.8.16(2024 年 8 月)

这是 RediSearch 2.8 的维护版本。

更新紧急度:HIGH:存在可能影响用户子集的严重错误。升级!

  • 错误修复:

    • #4896 - FT.AGGREGATEVERBATIM选项不由集群模式下的分片处理 (MOD-7463)
    • #4917 - Union 查询,类似于"is|the",以 2 个停用词开头可能会导致崩溃 (MOD-7495)
    • #4921 - 在#search部分的INFO响应 (MOD-7339)
    • #4939 - 使用 RESP3 响应到达时发出查询警告MAXPREFIXEXPANSION(型号-7588)
    • #4930 - 使用通配符时循环w'term'和前缀/中缀/后缀模式'ter*'引导分片重新启动 (MOD-7453)
    • #4912 - 在查询数值时避免词干扩展 (MOD-7025)

v2.8.15(2024 年 7 月)

更新紧急度:HIGH:存在可能影响用户子集的严重错误。升级!

  • 错误修复:

    • #4754 - 正确地在使用MAX减速机 (MOD-7252)
    • #4737 - 在转义字符后转义反斜杠时,分隔符被忽略,例如\hello\\,world忽略,(型号-7240)
    • #4717 - 按多个字段排序SORTBY 2 @field1 @field2忽略了后面的字段 (MOD-7206)
    • #4803 - 查询期间键过期返回空数组 (MOD-7010)
    • #4794 - 索引排错程序 (GC) 尝试清理已删除的数字索引可能会导致崩溃 (MOD-7303)
  • 改进:

    • #4792 - 为简单的字符串回复添加字符验证,并在需要时对其进行转义 (MOD-7258)
    • #4768 - 指示聚合管道的错误消息中缺少哪个值 (MOD-7201)
    • #4745 - GROUPBY递归清理 (MOD-7245)
    • #4823 - 查询执行期间的键过期机制清除中间结果

v2.8.14(2024 年 6 月)

这是 RediSearch 2.8 的维护版本。

更新紧急度:MODERATE:对服务器进行升级编程,但这不是紧急的。

  • 错误修复:

    • #4614分片在使用FT.AGGREGATEAPPLY 'split(...)'(型号-6759)
    • #4556 FT.EXPLAIN使用通配符进行查询时返回 additional (MOD-6768)}
    • #4646 FT.DROPINDEXDD标记一个 AA 群集中已删除的键,但不标记其他 AA 群集中已删除的键 (MOD-1855)
  • 改进:

    • 排名 #4595报告内存TAGTEXT尝试 (MOD-5902)
    • #4669倒排索引内存计数 (MOD-5977、MOD-5866)
    • #4687添加缺失FT.INFO字段 (MOD-6920)

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)
  • 改进:

    • #4502尝试在集群设置上执行 Search 命令时正确处理错误,作为MULTI ... EXEC或 LUA 脚本 (MOD-6541)
    • #4526在错误消息中添加详细的几何信息 (MOD-6701)

v2.8.12(2024 年 3 月)

这是 RediSearch 2.8 的维护版本。

更新紧急度:MODERATE:对服务器进行升级编程,但这不是紧急的。

详:

  • 错误修复:

    • 排名 #4476分裂INFIXSUFFIX报告FT.EXPLAINFT.EXPLAINCLI(型号-6186)
    • 排名 #4467后缀查询时出现内存泄漏TAGindexed withWITHSUFFIXTRIE(型号-6644)
    • 排名 #4403聚集FT.SEARCH找到无效拓扑时,永远挂起而不回复 (MOD-6557)
    • 排名 #4355搜索同义词将在同一组中多次迭代,从而导致性能下降 (MOD-6490)
  • 改进:

    • #4313用于查询的内存的内存分配模式GEOSHAPE类型 (MOD-6431)

v2.8.11(2024 年 1 月)

这是 RediSearch 2.8 的维护版本。

更新紧急度:MODERATE:对服务器进行升级编程,但这不是紧急的。

详:

  • 错误修复:

    • 排名 #4324内部集群机制不等到分片的所有回复,导致崩溃 (MOD-6287)
    • 排名 #4297使用FT.AGGREGATELOAD阶段无法缓冲正确的结果,这可能会导致崩溃 (MOD-6385)
  • 改进:

    • 排名 #4264上报告计数器的时间粒度FT.PROFILE(型号-6002)

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)
    • 排名 #4236FT.INFO报告 (MOD-6198)
    • 排名 #4196检查结果处理后是否超时FT.SEARCH在集群设置中 (MOD-6278)
    • 排名 #4164报告TIMEOUT,MAXPREFIXEXPANSIONRESP3 回复中的警告 (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)

v2.8.9(2023 年 10 月)

这是 RediSearch 2.8 的维护版本。

更新紧急度:HIGH:存在可能影响用户子集的严重错误。升级!

详:

  • 错误修复:

    • 排名 #3874一旦内存块未正确释放,大量文档更新会导致内存增长 (MOD-5181)
    • 排名 #3967重新分片优化导致进程卡住(MOD-5874、MOD-5864)
    • 排名 #3892清理索引后,GC 可能会导致唯一值损坏 (MOD-5815)
    • #3853查询WITHCURSOR使内存增长CURSOR未在分片中失效 (MOD-5580)
  • 改进:

    • #3938在多个分片数据库中传播错误消息,而不是静默失败 (MOD-5211)
    • #3903添加了对 Rocky Linux 9 和 RHEL9 的支持 (MOD-5759)

v2.8.8(2023 年 9 月)

这是 RediSearch 2.8 的维护版本。

更新紧急度:SECURITY:此版本中有安全修复程序。

详:

  • 安全和隐私:

    • #3788不公开内部群集命令 (MOD-5706)
    • #3844限制最大语音长度,避免被利用 (MOD 5767)
  • 错误修复:

    • #3771破碎lower()upper()函数APPLYstage inFT.AGGREGATEDIALECT 3(型号-5041)
    • 排名 #3752设置低MAXIDLEparameter 值FT.AGGREGATE导致崩溃 (MOD-5608)
    • 排名 #3780文档长度计算错误导致分数值不正确 (MOD-5622)
    • #3808 LOADstep 之后的FILTERStep 可能会导致FT.AGGREGATE(模组-5267)
    • #3823 APPLYFILTER解析器泄漏 (MOD-5751)
    • 排名 #3837在 Redis 7.2 上使用 TLS 的连接失败 (MOD-5768)
    • #3856向 OSS 集群添加新节点导致崩溃 (MOD-5778)
    • 排名 #3854由于内存损坏,矢量范围查询可能会导致内存不足 (MOD-5791)
  • 改进:

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),则添加了对POLYGONPOINT作为新的几何图形格式(新的GEOSHAPE).此外,2.8 还为SORT BYFT.SEARCHFT.AGGREGATE和 newFORMAT的增强响应FT.SEARCHFT.AGGREGATE仅在 RESP3 中。

特征:

  • 引入对 geo 多边形形状和查询的支持:

    • 添加GEOSHAPE field 类型来映射SCHEMAFT.CREATE(型号-4798)

    • 支持多边形POLYGONPOINT使用 WKT 表示法,例如POLYGON((lon1 lat1, lon2 lat2, ...))

    • 调整查询语法FT.SEARCH对于使用谓词的多边形@geom:[OPERATOR $poly]并将 WKT 格式的多边形定义为PARAMS 2 poly "POLYGON((10 20, ...))"DIALECT 3

    • 最初WITHINCONTAINS运算符替换为GEOSHAPES目前

    • 支持多种坐标系:带标志的笛卡尔 (X,Y)FLAT对于平地和地理 (LON, LAT),使用标志SPHERICAL(MOD-5303 的)。使用球面索引作为默认 (SPHERICAL)

    • FT.INFO响应报告 (MOD-5278)

  • 为 上的排序作引入性能优化FT.SEARCHFT.AGGREGATE作为默认值DIALECT 4.它将在 4 种不同的场景中提高性能,如下所示:

    • Skip Sorter - 在没有任何类型的情况下应用。查询到达LIMIT请求的结果。

    • 部分范围 - 当存在SORTBY如果数值字段没有筛选条件或按同一数值字段进行筛选,则查询将迭代足够大的范围以满足LIMIT请求的结果。

    • Hybrid - 在存在SORTBY一个数字字段以及另一个非数字过滤器。某些结果将被筛选,并且初始范围可能不够大。然后,迭代器使用以下范围倒带,并进行额外的迭代以收集LIMIT请求的结果。

    • 无优化 - 如果存在按分数或按非数字字段排序,则除了检索所有结果并比较其值外,别无选择。

  • WITHCOUNT参数,该参数允许通过排序返回查询结果的准确计数。此作处理所有结果以获得准确的计数,其性能低于优化选项(默认行为为DIALECT 4) (MOD-5311)

  • 新增功能FORMATargument 在FT.SEARCHFT.AGGREGATE以 JSON 字符串或 RESP3 分层结构(仅限 RESP3)检索结果 (MOD-5390)

改进(自 2.8.3 起):

  • #3717 - 顺时针方向的多边形形状验证和方向校正 (MOD-5575)

  • #3534 - 向量相似度 [0.7.0]

  • #3657 - 允许对架构中的所有分层索引进行 GC 调用

  • #3701 - HNSW 现在使用数据块而不是数组来存储向量和元数据

更改的行为:

  • #3355#3635 从副本的索引中删除了过期的键,返回一个空数组而不是nil(MOD-4739)
注意:
  • Redis 内部的语义版本控制版本为 2.8.4。由于 Redis 中的模块版本是数字,因此我们无法添加 GA 标志。

  • 最小 Redis 版本:7.2

  • 如果索引和查询 RedisJSON 数据结构,此版本最好与 RedisJSON 2.6(v2.6.0 及更高版本)结合使用。

为本页评分
返回顶部 ↑