
我们很高兴地宣布 Meilisearch 的首个主要版本发布了!这是许多人共同努力的结果。我们很自豪能够发布一个完全稳定的 Meilisearch 版本,这将保证与未来 Meilisearch 版本的兼容性。我们非常感谢社区的支持,他们帮助我们走到了这一步。
让我们来看看一些最重要的变化。您可以在 GitHub 上阅读完整的更新日志,但我们将在本文中介绍主要内容。
新功能:韩语支持
Meilisearch 支持多种语言,并针对多种语言进行了优化支持。感谢我们出色的贡献者 qbx2,我们现在也支持韩语。
改进:语言支持
感谢我们全球社区的参与、反馈、建议和拉取请求,我们全面改进了语言支持,特别是对中文的显著增强。
我们一直在寻求改进,欢迎在 GitHub 上加入关于中文支持的讨论!
我们还实现了一个新的、更高效的规范化器,以去除重音和其他非空格标记,从而完善了对希伯来语、泰语、阿拉伯语和拉丁语的支持。
改进:一步升级
Meilisearch v0.20 或以下版本的用户必须执行两步迁移才能将其数据库与 v0.24 以上的任何版本一起使用。但现在无需如此。
v1.0 与所有以前版本的转储文件兼容。
我们简化了流程,让任何人都可以顺利迁移到我们的第一个主要版本!请查阅我们文档中的更新指南。
改进:索引和搜索速度
- 我们减少了包含多个长词的搜索请求的内存使用量。
- 我们还降低了精确度排序规则的计算复杂度,并实现了缓存系统,从而显著提高了其性能,特别是对于包含许多单词的搜索查询。
- 在解释搜索查询时,多词同义词不再被视为常规搜索查询词,而是短语。假设您将“San Francisco”和“SF”设置为同义词。以下搜索请求:
I am going to SF soon
现在将被解释为:
I am going to "San Francisco" soon
此更改可防止包含多词同义词的请求超出词长限制并降低搜索性能。同时,它消除了拒绝服务攻击的来源,并提高了搜索结果的相关性。 - 我们调整了搜索请求中以前缀或非常短的单词结尾的近邻规则行为,以实现显著的速度提升。
- 在 v1.0 之前,如果设置对象包含可搜索属性,更新设置总是触发重新索引。现在,Meilisearch 会检查是否有任何更改,以避免不必要的重新索引。非常感谢 GregoryConrad 实现了这一点!
重大更改
您会很高兴地知道,以下是我们将在 v2.0 之前引入的最后一次重大更改 🥳 您可以放松一段时间,v2.0 尚未计划 ☺️
查看我们的新版本策略以了解更多关于破坏性更改的信息。
新的主键安全要求
为了加强安全性,当服务器环境设置为 production
时,Meilisearch 现在要求主键至少为 16 字节。如果未提供主键或不符合标准,Meilisearch 将建议一个安全的自动生成主键,您可以在重新启动实例时使用。
主键推断的改进
在 Meilisearch 中创建索引或添加文档时,您可以显式设置主键,也可以让 Meilisearch 从您的数据集中推断出来。
为了猜测主键(也称为推断),Meilisearch 过去会在您的第一个文档中查找**包含**字符串 id
的属性。现在,它会查找**以**字符串 id
结尾的属性。
此外,如果检测到多个以 id
结尾的属性,Meilisearch 现在将抛出错误,要求您使用更新索引端点手动指定主键。
新的 CLI 行为
--max-index-size
和 --max-task-db
已被移除,因为它们实际上并未限制 Meilisearch 占用的磁盘空间。此更改有两个后果:
- 由于操作系统对单个进程可分配的虚拟内存量的限制,Meilisearch 数据库中可同时存在的索引数量为:
- Linux/macOS 大约 200 个
- Windows 大约 20 个
2. 索引大小限制为 500GiB
虽然我们计划在 v1.1 中解除上述限制,但如果这些更改中的任何一项影响到您,您的意见将非常有帮助。您可以在此GitHub 讨论中找到更多详细信息。
自 v0.26 引入以来,自动批处理功能已证明其价值。用于调试目的的 disable-auto-batching
CLI 选项和相关的环境变量 MEILI_DISABLE_AUTO_BATCHING
已不再需要,并已被删除。
我们还移除了 --snapshot-interval-sec
标志,以简化快照调度。
之前:
meilisearch --schedule-snapshot --snapshot-interval-sec 3600
之后:
meilisearch --schedule-snapshot 3600 # If no value is provided, Meilisearch will take a new snapshot every 24 hours.
最后,为了保持一致性,--dumps-dir
CLI 选项已更名为 --dump-dir
,这更符合惯用语并与其他现有选项保持一致。
错误处理改进
为了在使用 API 时提供更高的清晰度和可预测性,我们添加了细粒度的错误代码和新的 system
错误类型。您可以在更新日志中查阅详细列表。
贡献者
非常感谢所有贡献者!没有你们的支持,我们不可能达到这个里程碑。你们真的非常棒,我们对你们为 Meilisearch 付出的所有努力、建议、评论和时间感激不尽。我们非常感谢拥有这样一个了不起的社区。
本月,我们想特别感谢 @amab8901、@colbsmcdolbs、@elbertronnie、@funilrys、@jiangbo212、@mohitsaxenaknoldus 和 @shivaylamba 对 Meilisearch 的帮助,以及 @amab8901、@GregoryConrad 和 @pnhatminh 对 Milli 的贡献。同样,我们还要感谢 @choznerol、@crudiedo、@daniel-shuy、@harshalkhachane、@mosuka、@qbx2、@Roms1383、@Sokom141 和 @yenwel 对 Charabia 的宝贵支持。