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- 对服务器进行升级编程,但这不是紧急的。

详:

  • 错误修复:
    • #2388数字索引中空范围的垃圾回收 (GC)
    • #2409简介FORK_GC_CLEAN_NUMERIC_EMPTY_NODES truemodule 参数启用 #2388(默认关闭)
    • 排名 #325在 hiredis 中使用了 Redis 分配器 (RSCoordinator)
    • 排名 #2362空字段名称时崩溃

v2.0.13(2021 年 11 月)

这是版本 2.0 的维护版本。

详:

  • 增强:

    • #2243 添加LOAD *FT.AGGREGATE,它将加载所有字段
  • 错误修复:

    • #2269 #2291 从 trie 中删除垃圾回收中没有条目的 TAG 值。
    • #2287 未初始化的读取FT.ADD
    • #2342 检查 intersect 迭代器上的 NULL 结果
    • #2350 崩溃FT.AGGREGATELIMIT 0 0

v2.0.12(2021 年 9 月)

这是版本 2.0 的维护版本。

详:

  • 增强:

    • #2184 API:用于分数、语言和非索引字列表的 getter 函数
    • #2188 在 SORTABLE 中引入了 UNF 参数,以禁用 TAG/TEXT 字段的规范化
    • #2218 API:添加了 RediSearch_CreateDocument2
  • 错误修复:

    • #2153 将 FT.INFO 复杂度恢复为 O(1)
    • #2203 英尺当 TAG 字段未在哈希中设置时,AGGREGATE 返回不准确的结果

v2.0.11(2021 年 8 月)

这是版本 2.0 的维护版本。

详:

  • 增强:

    • #2156 TAG 字段现在可以使用CASESENSITIVE参数
    • #2113 无法更新的现有文档将从索引中删除 (JIRA MOD-1266)
    • #267 #287 更新了 Hiredis 以支持分片间 TLS
  • 错误修复:

    • #2117 #2115 修复第一个值 reducer 的 coordinator 崩溃

v2.0.10(2021 年 7 月)

这是版本 2.0 的维护版本。

详:

  • 增强:

    • #2025 年:提高数值范围搜索的性能
    • #1958 #2033 支持 sortableGEO类型
    • #2079 更新到 Snowball 2.1.0,添加了亚美尼亚语、塞尔维亚语和意第绪语词干提取支持
    • #2002 在 API 中添加了停用词列表支持
  • 错误修复:

    • #2045 加载 RDB 文件时可能发生崩溃(静默忽略别名的双重加载)
    • #2099 #2101 修复了开启 CRDT 时可能发生的崩溃FT.DROPINDEX
    • #1994 跳过 intersect 迭代器 qsort ifINORDERflag 的
    • #257 切换协调器以发送_FT。CURSOR 而不是 FT。CURSOR 防止在不持有锁的情况下访问数据

v2.0.9(2021 年 5 月)

这是版本 2.0 的维护版本。

详:

  • RSCoordinator 中的错误修复:
    • #259:通过在后台线程上执行 cursor 命令来修复读取光标时的死锁

v2.0.8(2021 年 5 月)

这是版本 2.0 的维护版本。

此版本修复了 2.0 版本引入的重要回归。仅当设置了 WITHPAYLOADS 参数时,才应返回有效负载。

详:

  • 错误修复:
    • #1959 年将 parse_time() 重命名为 parsetime()
    • #1932 修复了由 LIMIT 参数导致的崩溃
    • #1919 防止 GC fork 崩溃
  • 次要增强功能:
    • #1880 intersect 迭代器的优化
    • #1914 不将有效负载作为字段返回

v2.0.7(2021 年 5 月)

这是版本 2.0 的维护版本。

详:

  • 主要增强功能:
    • #1864 通过预先确定回复数组长度来缩短查询时间。
    • #1879 通过调用 RM_ScanKey 而不是 RM_Call 来缩短加载时间
  • 主要错误修复:
    • #1866 修复了导致与 Redis 6.2.0 不兼容的链接问题。
    • #1842 #1852 修复 macOS 版本。
  • 小错误修复:
    • #1850 修复 drop 临时索引上的争用条件。
    • #1855 修复二进制负载损坏。
    • #1876 修复回复数组深度大于 7 时的崩溃。
    • #1843 #1860 修复低级 API 问题。

v2.0.6(2021 年 2 月)

这是版本 2.0 的维护版本。

详:

  • 小的补充:
    • #1696 产生的最大结果数FT.AGGREGATE现在是可配置的:MAXAGGREGATERESULTS.
    • #1708 更新了词干提取,支持新语言:巴斯克语、加泰罗尼亚语、希腊语、印度尼西亚语、爱尔兰语、立陶宛语、尼泊尔语。
  • 小错误修正:
    • #1668 修复了标签字段中对停用词的支持。还解决了以下相关问题:#166、#984、#1237、#1294
    • #1689 使用时的一致性修复和性能改进FT.SUGGETRSCoordinator 一起使用。
    • #1774 MINPREFIXMAXFILTEREXPANSION配置选项可以在运行时更改。
    • #1745 强制实施 0 值REDUCER COUNT.
    • #1757 达到可排序字段的最大数量时返回错误,而不是崩溃。
    • #1762 将最大可排序字段数与最大字段数对齐 (1024)

v2.0.5(2020 年 12 月)

这是版本 2.0 的维护版本。

详:

  • 次要功能:
    • #1696MAXAGGREGATERESULTS的模块配置FT.AGGREGATE.似MAXSEARCHRESULTSFT.SEARCH,它限制返回的最大结果数。

v2.0.4(2020 年 12 月)

这是版本 2.0 的维护版本。

详:

  • RediSearch 中的错误修复:
    • #1668不会在标签字段上过滤掉非索引字。
  • RSCoordinator 中的错误修复:
    • #206 FT.AGGREGATELIMIToffset大于0返回的结果少于请求的结果。

v2.0.3(2020 年 11 月)

这是版本 2.0 的维护版本。

小错误修正:

  • 添加OSS_GLOBAL_PASSWORDconfig 参数以允许在 OSS 集群上指定分片密码。
  • 更新min_redis_pack_version至 6.0.8

v2.0.2(2020 年 11 月)

这是版本 2.0 的维护版本。

  • 次要增强功能:

    • #1625MAXPREFIXEXPANSIONS 配置,该配置替换了现已弃用的配置 MAXEXPANSIONS。相同的行为,更多的声明性命名。
    • #1614防止在 FT 上执行多个排序步骤。骨料
  • 小错误修复:

    • #1605罕见的错误,相同的结果会得到较低的分数

v2.0.1(2020 年 10 月)

这是版本 2.0 的维护版本。

  • 小的补充:

    • 排名 #1432英尺。AGGREGATE 允许按键过滤并使用 LOAD “@__key” 返回键。
  • 小错误修复:

    • #1571在 FT 中使用 FILTER。CREATE 可能会导致索引与数据不同步。
    • #1572在没有 SORTBY 的情况下使用 WITHSORTKEYS 时崩溃。
    • #1540如果字段未定义为 SORTABLE,则 SORTBY 应引发错误。

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 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。

值得注意的变化

  • #1246geodistance函数FT.AGGREGATEAPPLY作。
  • #1394: 过期文档 (TTL) 将从索引中删除。
  • #1394: 优化以避免在更新非索引字段时重新索引文档。
  • 创建索引后,将开始对现有文档进行初始扫描。您可以通过调用FT.INFO并查看indexingpercent_indexed值。而indexing为 true,则查询返回部分结果。
  • #1435NOINITIALINDEX标记FT.CREATE以跳过创建索引时对文档的初始扫描。
  • #1401: 支持从 v1.x 升级并读取由 RediSearch 1.x 创建的 RDB。
  • #1445: 支持 load 事件。此事件在从 RDB 加载文档时为文档编制索引,确保在 RDB 加载完成时索引完全可用(从 Redis 6.0.7 及更高版本开始提供)。
  • #1384FT.DROPINDEX,默认情况下不会删除索引底层的文档(请参阅 deprecatedFT.DROP).
  • #1385: 添加索引定义FT.INFO响应。
  • #1097: 添加印地语雪球词干分析器。
  • FT._LISTcommand 返回所有可用索引的列表。请注意,这是一个临时命令,如名称中的 the 所示,因此不会记录在案。我们正在开发一个 [_SCAN](/commands/scan/-like 命令。
  • RediSearch 版本将在 Redis 中显示为20000,这相当于语义版本控制中的 2.0.0。由于 Redis 中模块的版本是数字,因此我们无法显式添加 GA 标志。
  • RediSearch 2.x 需要 Redis 6.0 或更高版本。

行为更改

在升级到 RediSearch 2.0 之前,请务必查看这些更改:

  • #1381FT.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
为本页评分
返回顶部 ↑