v1.0 版本的新功能
Meilisearch 的首个主要版本稳定了 CLI,增强了安全性,并承诺在下一个主要版本之前不会有破坏性更改。

我们很高兴地宣布 Meilisearch 的首个主要版本发布啦!这是许多人共同努力的成果。我们很自豪地发布了一个完全稳定的 Meilisearch 版本,它将保证与 Meilisearch 未来版本的兼容性。我们非常感谢我们的社区,他们一直支持我们并帮助我们走到今天。
让我们来看看一些最重要的更改。您可以在 GitHub 上阅读完整更新日志,但我们将在本文中介绍主要的更改。
新功能:韩语支持
Meilisearch 是多语言的,并针对多种语言进行了优化支持。感谢我们出色的贡献者 qbx2,我们现在也支持韩语了。
改进:语言支持
感谢我们全球社区的参与、反馈、建议和 PR,我们改进了所有语言的支持,其中中文的增强功能尤为突出
我们一直在寻求改进,欢迎加入 GitHub 上关于中文支持的讨论!
我们还实现了一个新的、更高效的 规范化器,以删除重音和其他非间距标记,从而改进了对希伯来语、泰语、阿拉伯语和拉丁语的支持。
改进:一步升级
Meilisearch v0.20 或更低版本的用户必须执行两步迁移才能将他们的数据库用于 0.24 以上的任何版本。直到现在。
v1.0 与所有先前版本的转储兼容。
我们简化了流程,以便任何人都可以顺利迁移到我们的第一个主要版本!请查看我们文档中的更新指南。
改进:索引和搜索速度
- 我们减少了包含多个长词的搜索请求的内存使用量。
- 我们还降低了精确度排名规则的计算复杂性,并实施了缓存系统,从而显着提高了其性能,尤其是对于包含多个单词的搜索查询。
- 在解释搜索查询时,多词同义词不再被视为常规搜索查询词,而是短语。假设您将旧金山和 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 的宝贵支持。