RediSearch 1.4 发布说明

条件更新。模式修改。查询拼写纠正。语音匹配。搜索中的更多模糊性。检索和更改运行时配置。无限自动完成结果。

需求

RediSearch v1.4.28 需要:

  • 最低Redis兼容版本(数据库):4.0.0
  • 最低Redis企业软件版本(集群):5.0.0

v1.4.28 (2020年5月)

这是版本1.4的维护发布。

标题:

  • 此版本提高了整体稳定性,并修复了上一个版本后发现的问题。

详情:

  • Bug修复:
    • #1218 在没有并发的情况下运行并使用游标API时可能崩溃。

v1.4.27 (2020年4月)

标题:

  • 此版本提高了整体稳定性,并修复了上一个版本后发现的问题。

详情:

  • 功能:
    • #1172 添加了exists函数,可用于条件更新REPLACE PARTIAL以检查文档中是否存在某个字段。
  • 小改进:
    • #1172 在IF条件中,对'or'/'and'子句的右侧进行惰性求值。
  • Bug修复:
    • #1110 访问未初始化变量时罕见的GC失败。
    • #1131 高亮显示搜索查询时文档不再存在导致的崩溃。

v1.4.26 (2020年3月)

标题:

  • 此版本提高了整体稳定性,并修复了上一个版本后发现的问题。

详情:

  • 修复罕见的FORK GC崩溃问题,该问题由访问未初始化的变量引起。

v1.4.25 (2020年3月)

标题:

  • 此版本提高了整体稳定性,并修复了上一个版本后发现的问题。

详情:

  • 功能:
    • #1051 添加了对在文档更新时更新标签字段的支持,使用 NOINDEX 字段。
  • Bug修复:
    • #1051 FORK GC 没有更新数字索引的唯一总和。

v1.4.24 (2020年1月)

标题:

  • 此版本提高了整体稳定性,并修复了上一个版本后发现的问题。

详情:

  • Bug修复:
    • #1038 游标内存泄漏。
    • #1049 释放其他索引字段时转换错误导致崩溃。

v1.4.23

标题:

  • 此版本提高了整体稳定性,并修复了上一个版本后发现的问题。

详情:

  • Bug修复:
    • 当游标超时且游标未被消耗时发生的内存泄漏。

v1.4.22

标题:

  • 此版本提高了整体稳定性,并修复了上一个版本后发现的问题。

详情:

  • Bug修复:
    • FILTER选项与协调器一起使用时无法正常工作。
    • 当游标与排序字段结合时出现内存泄漏。

v1.4.21

标题:

  • 此版本提高了整体稳定性,并修复了上一个版本后发现的问题。

详情:

  • Bug修复:
    • #1031 当与NOINDEX字段一起使用时,高亮显示崩溃。

v1.4.20 (2020年1月)

更新紧急程度:中等 这是版本1.4的维护发布。

此版本提高了整体稳定性,并修复了上一个版本后发现的问题。

  • 改进
    • #1020 提高了读取不可排序字段的性能。
  • Bug修复
    • #1022GC运行期间,查询导致非法内存访问。
    • #1022 使用相同名称重新创建索引(删除+创建)导致索引从游标列表中移除。
    • #1022 对不存在的索引执行FT.AGGREGATE时发生内存泄漏。
    • #1022GC运行期间可能导致数据损坏。
    • #1025 使用FT.AGGREGATE时,别名功能未正常工作。

v1.4.19 (2019年12月)

更新紧急程度:中等 这是版本1.4的维护发布。

此版本提高了整体稳定性,并修复了上一个版本后发现的问题。

  • Bug修复
    • #1000 - FT.DEL 未正确复制到副本
    • #1004 - 在某些情况下 TAG 数组的内存泄漏
    • #1006 - 条件更新 IF 中未暴露的错误导致错误信息泄露

v1.4.18(2019年11月)

更新紧急程度:中等 这是版本1.4的维护发布。

此版本提高了整体稳定性,并修复了上一个版本后发现的问题。

  • 错误修复
    • #947 修复了可能导致崩溃和潜在数据损坏的FORK GC管道的短读取问题

v1.4.17 (2019年10月)

更新紧急程度:中等 这是版本1.4的维护发布。

此版本提高了整体稳定性,并修复了上一个版本后发现的问题。

  • 功能:
    • #779 由于歧义原因,添加了to_number()to_str()函数
  • 改进
    • #891 所有的内存分配现在都将使用redis内存分配器。这意味着所有的内存将在redis的INFO MEMORY命令中正确暴露。

v1.4.16 (2019年9月)

更新紧急程度:中等 这是版本1.4的维护发布。

此版本提高了整体稳定性,并修复了上一个版本后发现的问题。

主要特点:

  • #883 Forkgc 优化 - 引入新的配置参数 FORK_GC_CLEAN_THRESHOLD。RediSearch 只会在未清理的文档数量超过此阈值时开始清理。

主要修复:

  • #848 RediSearch 在排序时不会因为某些字段在所有文档中不存在而崩溃。
  • #884 修复了交集迭代器上的错误结果。

v1.4.15 (2019年8月28日)

更新紧急程度:中等 这是版本1.4的维护发布。

此版本提高了整体稳定性,并修复了上一个版本后发现的问题。

主要修复:

  • #866 - 修复由于从建议树中删除不存在的术语导致的RDB损坏。
  • 当Redis退出时,由FORK垃圾回收创建的子进程现在将相应关闭。
  • 对于非临时和交错索引:当索引被删除时,索引器线程现在会被关闭。

v1.4.14 (2019年8月20日)

更新紧急程度:中等 这是版本1.4的维护发布。

此版本提高了整体稳定性,并修复了上一个版本后发现的问题。

主要修复:

  • #851 在交错模式(非安全模式)下,由并发更新删除的文档将被忽略。

v1.4.13 (2019年8月8日)

更新紧急程度:中等 这是版本1.4的维护发布。

此版本提高了整体稳定性,并修复了之前版本中发现的问题。

主要修复:

  • #798 修复语音查询返回错误结果的问题
  • #820 修复从文档表中获取不存在的文档时崩溃的问题
  • 修复使用带有' '(空格)分隔符的标签时无效内存读取的问题

v1.4.12 (2019年8月5日)

更新紧急程度:中等 这是版本1.4的维护发布。

此版本提高了整体稳定性,并修复了之前版本中发现的问题。

主要特点:

  • #741 允许中文分词识别标点符号的 -escape

主要修复:

  • #739 修复搜索错误导致的崩溃
  • #346 修复模糊功能无法与数字一起使用的问题
  • #769 修复了在加载rdb时罕见的崩溃问题
  • #749 在前缀搜索中,不要将前缀扩展为没有文档的术语

v1.4.11 (2019年6月)

更新紧急程度:中等

此版本仅增加了对预览版1.4.10的别名支持。

  • 新增功能
    • #731 添加索引别名功能。这允许用户提供(或删除)索引的“链接”。相关命令为 FT.ALIASADD、FT.ALIASDEL 和 FT.ALIASUPDATE。

v1.4.10 (2019年5月28日)

更新紧急程度:中等

这是版本1.4的维护发布。

此版本提高了整体稳定性,并修复了之前版本中发现的问题。

主要修复:

  • 修复在FT.AGGREGATE上结合SORT和APPLY时的内存泄漏问题

v1.4.9 (2019年5月18日)

更新紧急程度:中等

这是版本1.4的维护发布。

此版本提高了整体稳定性,并修复了之前版本中发现的问题。

主要修复:

  • Fork GC 现在将压缩倒排索引的空块。
  • 修复在使用GROUPBY进行聚合时无效的内存访问问题。
  • 修复了在使用SORTBY时使用limit可能会返回重复结果的问题。

已知问题:

  • 在FT.AGGREGATE中结合使用SORT和APPLY时出现内存泄漏问题。此问题已在1.4.10版本中修复。建议直接升级到1.4.10版本。

v1.4.8 (2019年4月29日)

更新紧急程度:低

技术发布,没有更改或修复。

v1.4.7 (2019年4月29日)

更新紧急程度:中等

这是版本1.4的维护发布。

此版本提高了整体稳定性,并修复了之前版本中发现的问题。

主要修复:

  • 修复在查询时删除并重新创建相同索引可能导致崩溃的问题。

v1.4.6 (2019年4月8日)

更新紧急程度:中等

这是版本1.4的维护发布。

此版本提高了整体稳定性,并修复了之前版本中发现的问题。

主要修复:

  • 加载可能由1.4以下版本生成的损坏的RDB文件
  • 修复REPLACE PARTIAL可能无法正常工作的问题 (#621)

v1.4.5 (2019年3月)

更新紧急程度:低

这是版本1.4的维护发布。

此版本提高了整体稳定性,并修复了之前版本中发现的问题。

主要修复:

  • 修复了FORK GC导致redis rdb fork失败的问题

v1.4.4 (2019年2月21日)

更新紧急程度:低

这是版本1.4的维护发布。

此版本提高了整体稳定性,并修复了之前版本中发现的问题。

主要修复:

  • 修复了Fork GC上的内存泄漏问题
  • 修复了在Fork GC释放GIL后关闭键的问题(在极少数情况下可能导致崩溃)

v1.4.3 (2019年2月4日)

更新紧急程度:低

这是版本1.4的维护发布。

此版本提高了整体稳定性,并修复了之前版本中发现的问题。

主要修复:

  1. 修复了内存池销毁时的内存泄漏问题
  2. 修复了在使用 fork GC(预览版)运行时进程崩溃的问题
  3. 修复了在使用 Tags 时 Fixed fork GC(预览版)死锁的问题
  4. 修复了索引创建和删除时的内存泄漏问题

v1.4.2 (2018年11月27日)

更新紧急程度:低

这是版本1.4的维护发布。

此版本提高了整体稳定性,并修复了发现的问题。

v1.4.1 (2018年11月12日)

更新紧急程度:中等

这是1.4版本的维护发布,下一个计划发布的版本是2.0。

此版本提高了整体稳定性,并专注于垃圾收集器的性能改进。它还包括:

  • 新增:运行时配置
  • 更改:无限自动完成结果

垃圾收集器

RediSearch 使用垃圾收集器从内部数据结构中移除已删除的文档。

在此版本中,垃圾回收机制在效率和性能方面得到了改进,即它回收的内存量更多,速度也更快。改进后的机制使用了分叉线程。更多详细信息可以在这篇文章中找到:How We Increased Garbage Collection Performance with RediSearch 1.4.1

改进的收集机制目前是*实验性的- 并且默认情况下未启用。启用新的垃圾收集机制需要在加载时将GC_POLICY配置选项设置为FORK,例如:

redis-server --loadmodule ./redisearch.so GC_POLICY FORK

运行时配置

RediSearch的配置是通过在加载时传递给模块的参数来应用的。此版本引入了新的FT.CONFIG命令,该命令允许检索当前配置以及在运行时更改它。

无限自动完成结果

此版本移除了FT.SUGGET的10个结果限制 - 你可以根据需要将MAX num设置得尽可能高。

v1.4.0 (2018年8月)

**更新紧急程度:*- 中等 - 主要是由于大量修复

此版本提高了RediSearch的整体稳定性和性能。它还提供了更好的支持,适用于文档持续更新的用例。新功能包括:

  • 条件更新
  • 模式修改
  • 查询拼写纠正
  • 语音匹配
  • 增强:搜索中的更多模糊性

持续更新

与大多数搜索引擎一样,RediSearch 设计用于维护主要追加的索引。要更新现有文档,实际上是替换文档 - 即删除并添加到索引中。

由于RediSearch提供实时索引和搜索功能,它有时被用于搜索近实时数据(或其处理结果)。在这种情况下,索引文档的数量大多保持静态,但它们的内容会不断更新。

为了支持这个用例,RediSearch 已经在内部进行了重新设计,使用64位内部文档ID,以便索引可以维持高更新吞吐量而不会溢出。此外,因此,已经投入了大量精力来改进内存管理和垃圾回收。

条件更新

IF 子命令已被添加到 FT.ADD 中。当与现有的 REPLACE [PARTIAL] 子命令一起使用时,只有在提供的条件评估为真值时,文档才会更新,否则将返回一个特殊的 NOADD 回复。

模式修改

FT.ALTER 命令已被引入,提供了向现有索引定义中添加新字段的能力。这些新添加的字段内容仅对新文档或更新文档进行索引。

查询拼写纠正

查询拼写纠正,也称为“您是不是要找”,现在通过FT.SPELLCHECK命令提供。它能够为可能拼写错误的搜索词生成建议。更多详情请参阅查询拼写纠正

语音匹配

语音匹配,即“Jon 还是 John?”,现在通过 PHONETIC 文本字段属性得到支持。此类字段中的术语也会根据其语音等效项进行索引,搜索结果默认包含这些内容。更多详情请参阅 Phonetic Matching

模糊匹配操作符 '%' 现在可以重复最多三次来指定 Levenshtein 距离。这意味着查询 %hello%%%hello%%%%%hello%%% 将分别对 'hello' 进行 LD 为 1、2 和 3 的所有术语进行模糊匹配。

RATE THIS PAGE
Back to top ↑