RediSearch 2.10 发布说明
新的向量数据类型。增强的索引能力。简化的查询语法。扩展的地理空间搜索。
需求
RediSearch v2.10.10 需要:
- 最低Redis兼容版本(数据库):7.4
- 最低Redis企业软件版本(集群):7.6(待定)
v2.10.10 (2025年1月)
这是RediSearch 2.10的维护版本
更新紧急程度:SECURITY
:此版本包含安全修复。
安全与隐私:
- #5459 (CVE-2024-51737) 查询:潜在的越界写入 (MOD-8486)
错误修复:
- #5392
NOSTEM
选项在查询时不起作用,仅在标记化(索引创建)时有效 (MOD-7634) - #5300 前缀/中缀/后缀查询长度超过1024个字符可能导致崩溃 (MOD-7882)
- #5294 在使用
replicaof
时,后台索引期间的过期键可能导致跨槽错误 (MOD-7949) - #5282
FT.CURSOR READ
检索已删除的TAG
字段导致崩溃 (MOD-8011) - #5424
FT.AGGREGATE
在数值字段上导致集群数据库中的failed_calls
计数增加 (MOD-8058) - #5241 索引清理器在
bytes_collected
上对缺失值进行的内存计数 (MOD-8097, MOD-8114)
改进:
- #5257 优化索引消耗的内存,仅在写操作时创建 (MOD-8125)
v2.10.7 (2024年9月)
这是RediSearch 2.10的维护版本
更新紧急程度:HIGH
:存在一个可能影响部分用户的关键错误。请升级!
错误修复:
- https://github.com/RediSearch/RediSearch/pull/4941 调整模块配置以避免在集群数据库中的第一个分片上出现路由过载 (MOD-7505)
- https://github.com/RediSearch/RediSearch/pull/4950
FT.PROFILE
在AGGREGATE
数字查询中可能会因为在大范围数字值中重复使用内部 CURSOR 而导致崩溃 (MOD-7454)
v2.10.6 (2024年8月):
这是RediSearch 2.10的维护版本。
更新紧急程度:HIGH
- 存在一个可能影响部分用户的关键错误。请升级!
错误修复:
- #4916 - 联合查询,类似于
"is|the"
,以2个 storwords 开头可能会导致崩溃 (MOD-7495) - #4895 - 在集群模式下,带有
VERBATIM
选项的FT.AGGREGATE
未被分片处理 (MOD-7463) - #4922 - 在
INFO
响应的#search
部分统计了两次字段统计信息 (MOD-7339)
v2.10 GA (v2.10.5) (2024年7月)
这是RediSearch 2.10的正式发布版本
标题:
最新的RediSearch引入了内存高效的向量数据类型,增强了对空字段和缺失字段的索引能力,简化了查询语法,并扩展了地理空间搜索功能。
2.10.5 版本的新内容
这个新的大版本引入了新的BFLOAT16
和FLOAT16
向量数据类型,减少了向量消耗的内存,同时保持了准确性。此更新还包括对索引空值和缺失值的高度需求支持,并增强了具有精确匹配功能的查询的开发者体验。开发者现在可以匹配TAG
字段,而无需转义特殊字符,使得入门过程和使用查询语法更加容易。最后,地理空间搜索功能通过新的INTERSECT
和DISJOINT
操作符得到了扩展,并通过提供更好的索引内存消耗报告和在聚合管道中暴露全文评分来改善人体工程学。
功能:
-
通过使用
TAG
增强精确匹配查询,避免使用更简单的语法'@tag:{"my-query%term"}'
和NUMERIC
查询来转义特殊含义字符: -
在定义索引时,使用
FT.CREATE
为SCHEMA
中的每个字段添加新关键字,以支持使用INDEXEMPTY
索引空值和使用INDEXMISSING
索引缺失值- #4663, #4721 - 为
TAG
和TEXT
字段索引空字符串值""
(MOD-6540, MOD-7200) - #4721 - 更新查询解析器以支持
TEXT
字段的空值查询,如FT.SEARCH idx '@text_field:""'
或FT.SEARCH idx '""'
,以及TAG
字段的空值查询,如FT.SEARCH idx '@tag_field:{""}'
(MOD-7200) - #4720, #4635 - 为所有字段类型索引缺失值,引入查询语法函数
ismissing(@field)
,支持查询缺失字段,如FT.SEARCH idx 'ismissing(@text)'
(MOD-6532)
- #4663, #4721 - 为
-
启用新的向量数据类型,通过新的
BFLOAT16
和FLOAT16
减少向量消耗的内存 -
在聚合管道中使用
ADDSCORE
暴露全文评分值。调用评分时,可以在管道中使用@__score
,如FT.AGGREGATE idx 'hello' ADDSCORES SORTBY 2 @__score DESC
- #4859 - 将评分暴露给
FT.AGGREGATE
管道 (MOD-7190)
- #4859 - 将评分暴露给
-
#4227 - 在查询多边形的
GEOSHAPE
时,添加对新操作符INTERSECT
和DISJOINT
的支持 (MOD-6178)
错误修复(自2.10.4版本以来):
- #4854 - 避免从数值扩展词干(MOD-7025)
改进(自2.10.4版本以来):
- #4865 - 添加在索引缺失字段时清理垃圾条目的覆盖范围 (MOD-7415)
- Redis 内部的版本将遵循语义版本控制为 2.10.5。由于 Redis 中模块的版本是数字形式的,我们无法添加发布候选标志。
- 最低Redis版本:7.4
- 如果对RedisJSON数据结构进行索引和查询,此版本最好与RedisJSON 2.8(v2.8.2及以后版本)结合使用
- 如果哈希键的一个或多个字段在查询开始后过期(使用 FT.SEARCH 或 FT.AGGREGATE),Redis 不会考虑这些惰性过期的字段。因此,包含过期字段的键可能仍然会出现在查询结果中,导致可能不正确或不一致的结果。