v1.0 版本新特性
Meilisearch 的首个主要版本稳定了 CLI、增强了安全性,并承诺这将是下一个主要版本发布前的最后一次重大更改。

我们很高兴地宣布 Meilisearch 的首个主要版本已发布!这是许多人共同努力的成果。我们很自豪能够发布一个完全稳定的 Meilisearch 版本,它将保证与 Meilisearch 未来版本的兼容性。我们非常感谢我们的社区,他们一直支持我们并帮助我们走到今天。
让我们来看看一些最重要的变化。您可以在 GitHub 上阅读完整的更新日志,但我们将在本文中介绍主要内容。
新功能:支持韩语
Meilisearch 支持多种语言,并针对多种语言进行了优化。感谢我们出色的贡献者 qbx2,我们现在也支持韩语了。
改进:语言支持
感谢全球社区的参与、反馈、建议和 PRs,我们全面改进了语言支持,特别是对中文的显著增强
我们一直在寻求改进,欢迎加入 GitHub 上关于中文支持的讨论!
我们还实施了一种新的、更高效的规范化器,用于去除重音和其他非间距标记,这改进了对希伯来语、泰语、阿拉伯语和拉丁语的支持。
改进:一步升级
Meilisearch v0.20 或更早版本的用户必须执行两步迁移才能在 0.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.
最后,为了保持一致性,CLI 选项 --dumps-dir
已被重命名为 --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 的宝贵支持。