想要更好地控制您的搜索设置?了解我们的灵活的基础设施定价

回到主页Meilisearch 的标志
返回文章

v0.25 的新特性

本月发布版本对 API 密钥管理和异步任务进行了重大更改。

2022 年 1 月 11 日2 分钟阅读
Ferdinand Boas
费迪南德·博阿斯Meilisearch 开发者关系主管@ferdinandboas
What's new in v0.25
分享文章

在本文中,我们将介绍 v0.25 引入的一些主要和重大更改。您也可以在 GitHub 上阅读完整的更新日志

重大更改

API 密钥管理

从这个版本开始,开发人员现在可以创建具有特定权限和过期日期的 API 密钥,从而精确控制哪些用户/应用程序可以访问哪些索引和端点。

作为此功能的一部分,privatepublic 密钥已被弃用,并替换为两个具有类似权限的默认 API 密钥:Default Admin API KeyDefault Search API Key

X-MEILI-API-KEY: <apiKey> 头已被 Authorization: Bearer <apiKey> 头替换。

假设您正在医疗行业开发一个应用程序。以下是如何创建一个 API 密钥,该密钥只能访问 patient_medical_records 索引上的搜索端点

curl 
    -X POST 'https://:7700/keys/' 
    -H 'Content-Type: application/json' 
    -H 'Authorization: Bearer [your_master_key]' 
    --data-binary '{
      "description": "Search patient records key",
      "actions": [
        "search"
      ],
      "indexes": ["patient_medical_records"],
      "expiresAt": "2023-01-01T00:00:00Z"
    }'

响应:201 Created

{
    "description": "Search patient records key",
    "key": "d0552b41536279a0ad88bd595327b96f01176a60c2243e906c52ac02375f9bc4",
    "actions": [
        "search"
    ],
    "indexes": [
        "patient_medical_records"
    ],
    "expiresAt": "2023-01-01T00:00:00Z",
    "createdAt": "2022-01-01T10:00:00Z",
    "updatedAt": "2022-01-01T10:00:00Z"
}

然后用户可以使用此密钥在 patient_medical_records 索引上进行搜索请求

curl 
    -X POST 'https://:7700/indexes/patient_medical_records/search' 
    -H 'Content-Type: application/json' 
    -H 'Authorization: Bearer d0552b41536279a0ad88bd595327b96f01176a60c2243e906c52ac02375f9bc4' 
    --data-binary '{ "q": "trypophobia" }'

欲了解更多信息,请阅读我们关于保护 Meilisearch 实例安全的新指南。

异步操作

在 v0.25 中,我们彻底重构了 Meilisearch 的异步操作,用新的 tasks API 替换了 updates API。

在一个相关的更改中,创建、更新和删除索引现在都是异步操作。此修复消除了竞争条件的可能性。

在 v0.25 之前,任何异步处理的请求(例如添加文档)都会返回一个 updateId 以跟踪操作状态

{ "updateId": 1 }

在 v0.25 之后,异步操作现在将返回任务对象的摘要版本

{
    "uid": 1,
    "indexUid": "patient_medical_records",
    "status": "enqueued",
    "type": "documentAddition",
    "enqueuedAt": "2021-08-10T14:29:17.000000Z",
}

您可以使用 /tasks 路由获取完整的任务对象和操作的当前状态。

curl 
    -X GET 'https://:7700/tasks/1'
    

响应:200 Ok

{
    "uid": 1,
    "indexUid": "patient_medical_records",
    "status": "succeeded",
    "type": "documentAddition",
    "details": { 
            "receivedDocuments": 1,
            "indexedDocuments": 1
    },
    "duration": "PT1S",
    "enqueuedAt": "2021-08-10T14:29:17.000000Z",
    "startedAt": "2021-08-10T14:29:18.000000Z",
    "finishedAt": "2021-08-10T14:29:19.000000Z"
}

这里任务已成功。任务的其他可能状态包括 enqueuedprocessingfailed

当任务失败时,Meilisearch 将返回一个 error 对象作为响应的一部分

{
    "uid": 2,
    "indexUid": "patient_medical_records",
    "status": "failed",
    "type": "documentAddition",
    "details": { 
            "receivedDocuments": 1,
            "indexedDocuments": 0
    },
    "error": {
        "message": "Document does not have a `:primaryKey` attribute: `:documentRepresentation`.",
        "code": "internal",
        "type": "missing_document_id",
        "link": "https://docs.meilisearch.com/errors#missing-document-id",
    },
    "duration": "PT1S",
    "enqueuedAt": "2021-08-11T14:29:17.000000Z",
    "startedAt": "2021-08-11T14:29:18.000000Z",
    "finishedAt": "2021-08-11T14:29:19.000000Z"
}

欲了解更多信息,请查看异步操作文章或任务 API 参考

其他更改

  • 跨版本兼容性: Meilisearch v0.25 及后续版本与 v0.22 之前创建的 dumps 不兼容。
    要将 v0.22 之前的 dump 迁移到 v0.25 Meilisearch,首先将您的 dump 加载到 v0.24.0 中,使用 v0.24.0 创建一个 dump,然后将此 dump 导入到 v0.25.0 中。
  • 我们增加了几个新的错误消息,其中大部分与 API 密钥管理有关。
  • matches 现在会高亮显示字符串和数值。
  • 我们添加了一些新的遥测指标。

贡献者

非常感谢所有贡献者!没有你们的帮助,这个项目无法走得很远。

感谢 @Mcdostone@Thearas 对 Meilisearch 的帮助,以及 @datamaker@Samyak2 对我们分词器库的帮助。


如果您想了解我们在此处未提及的更新的更多详细信息,请查看我们的发布更新日志

Meilisearch 1.16

Meilisearch 1.16

Meilisearch 1.16 引入了多模态嵌入和新的 API,用于在实例之间传输数据。

Laurent Cazanove
Laurent Cazanove2025年8月5日
Meilisearch 1.15

Meilisearch 1.15

Meilisearch 1.15 引入了新的拼写容错设置、字符串过滤器比较运算符,并改进了对中文的支持。

Carolina Ferreira
Carolina Ferreira2025年6月10日
Meilisearch 1.14

Meilisearch 1.14

Meilisearch 1.14 引入了新的实验性功能,包括复合嵌入器和嵌入缓存以提高性能。它还增加了核心功能,例如细粒度可过滤属性和按 ID 批量检索文档。

Carolina Ferreira
Carolina Ferreira2025年4月14日
© . This site is unofficial and not affiliated with Meilisearch.