RediSearch 2.8 GA (v2.8.4) 现已发布,引入了对 RESP3 的支持、新功能、性能改进和错误修复。RediSearch 是 RedisLabs 团队开发的一个高性能全文搜索引擎,可作为一个 Redis Module 运行在 Redis 上。
新增内容
这个新的主要版本引入了新的和常见的 Geo Polygon Search。新增的GEOSHAPE
字段类型支持使用 WKT notation 的多边形形状。除了当前已用于 geo 范围查询的 GEO(GEOPOINT 的别名)外,还增加了对 POLYGON 和 POINT 作为新的 geo 形状格式(新 GEOSHAPE)的支持。此外,2.8 版还改进了使用 FT.SEARCH 和 FT.AGGREGATE 进行 SORT BY 操作的性能,并增加了新的 FORMAT,以增强仅在 RESP3 中对 FT.SEARCH 和 FT.AGGREGATE 的响应。
Features:
-
引入对 Geo-polygon 形状和查询的支持:
- 添加
GEOSHAPE
字段类型,以便在FT.CREATE
的SCHEMA
中映射 polygons(MOD-4798) - 使用 WKT notation 支持 polygons
POLYGON
和POINT
,例如POLYGON((lon1 lat1, lon2 lat2, ...))
- 支持多种坐标系
- 在
FT.INFO
响应报告中添加每个几何索引的内存使用量(MOD-5278)
- 添加
-
在
DIALECT 4
默认情况下,对FT.SEARCH
和FT.AGGREGATE
的排序操作引入性能优化。它将改善以下 4 种不同情况下的性能:- Skip Sorter - 在没有任何排序时使用。一旦达到
LIMIT
请求的结果,查询就会返回。 - Partial Range - 当对一个数字字段进行
SORTBY
,并且没有过滤器或者用相同的数字字段作为过滤器时应用,查询会在足够大的范围内迭代以满足LIMIT
请求的结果。 - Hybrid - 当存在一个数字字段需要进行
SORTBY
排序,并且还有其他非数字过滤器时应用。一些结果将会被过滤掉,初始范围可能不够大。然后迭代器会根据 following ranges 倒回,并进行额外的迭代以收集LIMIT
请求的结果。 - No optimization - 如果存在按分数或非数字字段排序,则除了检索所有结果并比较它们的值之外别无选择。
- Skip Sorter - 在没有任何排序时使用。一旦达到
-
添加
WITHCOUNT
参数,允许返回带排序的查询结果的精确计数。该操作会处理所有结果以获得精确计数,但性能不如 optimised 选项(DIALECT 4
的默认行为)(MOD-5311) -
在 FT.SEARCH 和 FT.AGGREGATE 中新增 FORMAT 参数,以 JSON 字符串或 RESP3 层次结构(仅限 RESP3)的形式检索结果(MOD-5390)
改进(自 2.8.3 起):
- #3717 - 顺时针时 Polygons shapes 验证和方向校正(MOD-5575)
- #3534 - 矢量相似度 [ 0.7.0 ]
- #3657 - 允许 GC 调用架构中的所有分层索引
- #3701 - HNSW 现在使用数据块来存储矢量和元数据而不是数组
Changed Behavior:
- #3355、#3635 从从属索引中删除过期键,返回空数组而不是
nil
(MOD-4739)
Notes:
- Redis 内部的版本在语义版本控制中将为 2.8.4。由于 Redis 中模块的版本是数字,因此无法添加 GA 标志。
- 最小 Redis 版本:7.2
- 如果索引和查询 RedisJSON 数据结构,该版本最好与 RedisJSON 2.6(v2.6.0以上)结合使用
详情可查看更新说明。
还没有评论,来说两句吧...