RediSearch 2.0 发行说明
根据键模式自动为数据编制索引。在多个 Redis 分片上扩展单个索引。改进了查询性能。
Redis 堆栈 |
---|
要求
RediSearch v2.0.13 需要:
- 最低 Redis 兼容版本(数据库):6.0.0
- 最低 Redis 企业软件版本(集群):6.0.0
v2.0.15(2021 年 12 月)
这是 RediSearch 2.0 的维护版本。
更新紧急度:MODERATE
- 对服务器进行升级编程,但这不是紧急的。
详:
- 错误修复:
v2.0.13(2021 年 11 月)
这是版本 2.0 的维护版本。
详:
-
增强:
- #2243 添加
LOAD *
FT.AGGREGATE,它将加载所有字段
- #2243 添加
-
错误修复:
v2.0.12(2021 年 9 月)
这是版本 2.0 的维护版本。
详:
-
增强:
-
错误修复:
v2.0.11(2021 年 8 月)
这是版本 2.0 的维护版本。
详:
-
增强:
-
错误修复:
v2.0.10(2021 年 7 月)
这是版本 2.0 的维护版本。
详:
-
增强:
-
错误修复:
v2.0.9(2021 年 5 月)
这是版本 2.0 的维护版本。
详:
- RSCoordinator 中的错误修复:
- #259:通过在后台线程上执行 cursor 命令来修复读取光标时的死锁
v2.0.8(2021 年 5 月)
这是版本 2.0 的维护版本。
此版本修复了 2.0 版本引入的重要回归。仅当设置了 WITHPAYLOADS 参数时,才应返回有效负载。
详:
- 错误修复:
- 次要增强功能:
v2.0.7(2021 年 5 月)
这是版本 2.0 的维护版本。
详:
- 主要增强功能:
- 主要错误修复:
- 小错误修复:
v2.0.6(2021 年 2 月)
这是版本 2.0 的维护版本。
详:
- 小的补充:
- 小错误修正:
v2.0.5(2020 年 12 月)
这是版本 2.0 的维护版本。
详:
- 次要功能:
- #1696加
MAXAGGREGATERESULTS
的模块配置FT.AGGREGATE
.似MAXSEARCHRESULTS
为FT.SEARCH
,它限制返回的最大结果数。
- #1696加
v2.0.4(2020 年 12 月)
这是版本 2.0 的维护版本。
详:
- RediSearch 中的错误修复:
- #1668不会在标签字段上过滤掉非索引字。
- RSCoordinator 中的错误修复:
- #206
FT.AGGREGATE
跟LIMIT
和offset
大于0
返回的结果少于请求的结果。
- #206
v2.0.3(2020 年 11 月)
这是版本 2.0 的维护版本。
小错误修正:
- 添加
OSS_GLOBAL_PASSWORD
config 参数以允许在 OSS 集群上指定分片密码。 - 更新
min_redis_pack_version
至 6.0.8
v2.0.2(2020 年 11 月)
这是版本 2.0 的维护版本。
-
次要增强功能:
-
小错误修复:
- #1605罕见的错误,相同的结果会得到较低的分数
v2.0.1(2020 年 10 月)
这是版本 2.0 的维护版本。
-
小的补充:
- 排名 #1432英尺。AGGREGATE 允许按键过滤并使用 LOAD “@__key” 返回键。
-
小错误修复:
v2.0.0(2020 年 9 月)
RediSearch 2.0 是符合 GA 标准的公共预览版。与 RediSearch 1.0 相比,此版本在性能和可用性方面进行了多项改进。这些改进需要对 API 进行一些向后突破性的更改。
突出
在此版本中,我们更改了搜索索引与数据保持同步的方式。在 RediSearch 1.x 中,您必须使用FT.ADD
命令。在 RediSearch 2.x 中,您的数据会根据键模式自动编制索引。
这些更改旨在提高开发人员的工作效率,并确保 您的搜索索引始终与数据保持同步。为了支持这一点,我们 对 API 进行了一些更改。
除了简化索引之外,RediSearch 2.0 还允许您使用 Redis 集群 API 在多个 Redis 分片上扩展单个索引。
最后,RediSearch 2.x 将其索引保持在主 Redis 键空间之外。对索引代码的改进将查询性能提高了 2.4 倍。
您可以在 RediSearch 2.0 公告博客文章中阅读更多详细信息,也可以查看此快速入门博客文章以开始使用。

详
- 创建索引时,必须指定前缀条件和/或筛选条件。这决定了 RediSearch 将索引哪些哈希。
- 现在,几个 RediSearch 命令映射到其 Redis 等效命令:
FT.ADD
->HSET
,FT.DEL
->DEL
(相当于FT.DEL
在 RediSearch 1.x 中使用 DD 标志),FT.GET
->HGETALL
,FT.MGET
->HGETALL
. - RediSearch 索引不再驻留在键空间中,并且索引不再保存到 RDB。
- 您可以从 RediSearch 1.x 升级到 RediSearch 2.x。
值得注意的变化
- #1246:
geodistance
函数FT.AGGREGATE
APPLY作。 - #1394: 过期文档 (TTL) 将从索引中删除。
- #1394: 优化以避免在更新非索引字段时重新索引文档。
- 创建索引后,将开始对现有文档进行初始扫描。您可以通过调用
FT.INFO
并查看indexing
和percent_indexed
值。而indexing
为 true,则查询返回部分结果。 - #1435:
NOINITIALINDEX
标记FT.CREATE
以跳过创建索引时对文档的初始扫描。 - #1401: 支持从 v1.x 升级并读取由 RediSearch 1.x 创建的 RDB。
- #1445: 支持 load 事件。此事件在从 RDB 加载文档时为文档编制索引,确保在 RDB 加载完成时索引完全可用(从 Redis 6.0.7 及更高版本开始提供)。
- #1384:
FT.DROPINDEX
,默认情况下不会删除索引底层的文档(请参阅 deprecatedFT.DROP
). - #1385: 添加索引定义
FT.INFO
响应。 - #1097: 添加印地语雪球词干分析器。
- 这
FT._LIST
command 返回所有可用索引的列表。请注意,这是一个临时命令,如名称中的 the 所示,因此不会记录在案。我们正在开发一个 [_
SCAN
](/commands/scan/-like 命令。 - RediSearch 版本将在 Redis 中显示为
20000
,这相当于语义版本控制中的 2.0.0。由于 Redis 中模块的版本是数字,因此我们无法显式添加 GA 标志。 - RediSearch 2.x 需要 Redis 6.0 或更高版本。
行为更改
在升级到 RediSearch 2.0 之前,请务必查看这些更改:
- #1381:
FT.SYNADD
被移除;用FT.SYNUPDATE
相反。FT.SYNUPDATE
需要两者 以及索引名称和同义词组 ID。此 ID 可以是任何 ASCII 字符串。 - #1437:在查询执行期间过期的文档将不会显示在结果中(但可能已计入生成的文档数)。
- #1221: 小写的同义词支持。这可能会导致 FT 上的结果集不同。SEARCH (使用同义词时)。
- RediSearch 不会对字段与现有索引架构不匹配的哈希值编制索引。您可以查看未使用
FT.INFO
-hash_indexing_failures
.此处捕获了添加对部分索引和阻止的支持的要求:#1455。 - 删除了对
NOSAVE
. - 由于索引未持久保存,RDB 加载将需要更长的时间。
- 查询语法中的字段名称现在区分大小写。
- 已弃用的命令:
FT.DROP
(替换为FT.DROPINDEX
,默认情况下会保留文档)FT.ADD
(映射到HSET
为了向后兼容)FT.DEL
(映射到DEL
为了向后兼容)FT.GET
(映射到HGETALL
为了向后兼容)FT.MGET
(映射到HGETALL
为了向后兼容)
- 删除的命令:
FT.ADDHASH
(不再有意义)FT.SYNADD
(参见 #1381)FT.OPTIMIZE