v0.26 版本的新功能
本月发布的版本为您带来了两个强大的新功能:租户令牌和自动批处理。
在本文中,让我们来看看 Meilisearch 最新更新中的一些最重要更改。您可以在这里查看完整的变更日志。
新功能:租户令牌
在软件开发中,多租户意味着多个用户(也称为租户)共享相同的计算资源,但对系统范围的数据具有不同的访问级别。在 Meilisearch 中,您可能有一个索引包含属于许多不同租户的数据。
租户令牌是包含 安全凭证 和一组 搜索规则 的小型加密数据包。这些搜索规则有效地限制了搜索查询可以返回哪些文档。例如,您可以使用令牌来确保医疗应用程序的用户只能搜索他们自己的医疗记录,即使所有记录都存储在同一个索引中。
要开始使用租户令牌,请在应用程序的后端设置令牌生成过程
const currentUserID = 'aUserID'; const searchRules = { 'patient_medical_records': { filter: `user_id = ${currentUserID}` } }; const apiKey = 'yourApiKey'; const expiresAt = new Date('2025-12-20'); // optional const token = client.generateTenantToken(searchRules, { apiKey: apiKey, expiresAt: expiresAt, });
创建租户令牌后,您可以将其发送到最终用户的前端并使用它来查询索引
const frontEndClient = new MeiliSearch({ host: 'http://127.0.0.1:7700', apiKey: token }); frontEndClient.index('patient_medical_records').search('blood test');
您可以在我们的专用指南中阅读有关多租户以及如何在应用程序中实现租户令牌的更多信息。
实验性功能:自动批处理
在提高 Meilisearch 的索引性能方面,我们经常建议用户将其文档拆分成批次。但是,找到合适的批次大小可能会带来额外的挑战。一方面,大批次会占用大量资源;另一方面,小批次会明显变慢。我们知道我们可以做得更好。
在此版本中,我们引入了实验性的自动批处理功能。自动批处理将通过自动将连续添加的文档批处理在一起来帮助您提高索引速度。
您可以通过在启动 Meilisearch 时传递 --enable-auto-batching
标志来激活自动批处理
./meilisearch --enable-auto-batching
我们非常希望此功能能够使 Meilisearch 索引编制更快、更易于使用。您可以在我们的文档网站上阅读有关自动批处理的更多信息。
我们决定以实验状态发布它,因为此功能可能会被大量重做。我们需要您的反馈来衡量其成功并使其发展。
重大更改:新的转储行为
将转储导入到具有现有数据库的实例中会引发错误,并且 Meilisearch 将不会启动。在 v0.26 之前,导入只是静默失败,没有任何迹象表明出现了问题。
./meilisearch --import-dump path_to_dump_file
如果您的工作流程需要,您可以使用两个新的命令行标志来禁止导入错误:--ignore-dump-if-db-exists
和 --ignore-missing-dump
。
重大更改:命令行标志行为
从 v0.26 开始,以下实例选项在命令行中使用时不再接受值:-no-analytics
、--schedule-snapshot
、--ignore-missing-snapshot
、--ignore-snapshot-if-db-exists
、--ssl-require-auth
、--ssl-resumption
和 --ssl-tickets
。
# new behavior meilisearch --no-analytics # old behavior meilisearch --no-analytics=true
当将这些选项用作环境变量时,仍然需要一个值。
其他更改
- 空的 CSV 单元格现在会转换为
null
值 - 添加和更新文档时,有效但为空的有效负载不再引发错误
- armv8 二进制文件已弃用,转而支持 aarch64 二进制文件
- 改进了包含非 Unicode 字符的搜索的突出显示
- 改进了
_geoPoint
排序行为
贡献者
非常感谢帮助我们的贡献者!我们要特别感谢 @robjtede、@Thearas 和 @Samyak2——我们为您的努力和慷慨而感到谦卑。
这就是全部内容!请记住查看 GitHub 上的变更日志,了解完整的发行说明,我们很快会在 v0.27 版本中与您见面!