Meilisearch v1.14 发布啦 ✨ 在我们的博客上阅读更多内容

回到首页Meilisearch 的标志
返回文章
2022 年 1 月 11 日

v0.25 版本的新功能

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

Ferdinand Boas
Ferdinand BoasMeilisearch 开发者关系主管@ferdinandboas
What's new in v0.25

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

重大更改

API 密钥管理

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

作为此功能的一部分,privatepublic 密钥已被弃用,并被两个具有类似权限的默认 API 密钥取代:默认管理员 API 密钥默认搜索 API 密钥

X-MEILI-API-KEY: <apiKey> 标头已被 Authorization: Bearer <apiKey> 标头取代。

假设您正在医疗行业创建一个应用程序。以下是如何创建一个仅有权访问 patient_medical_records 索引上的搜索端点的 API 密钥的方法

curl 
    -X POST 'http://localhost: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 'http://localhost: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 之后,异步操作现在将返回 task 对象的摘要版本

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

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

curl 
    -X GET 'http://localhost: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"
}

有关更多信息,请查看 异步操作 文章或 tasks API 参考

其他更改

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

贡献者

非常感谢我们所有的贡献者!没有你们的帮助,这个项目不可能走得这么远。

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


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

Meilisearch 1.14

Meilisearch 1.14

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

Carolina Ferreira
Carolina Ferreira2025 年 4 月 14 日
Meilisearch AI launch week recap

Meilisearch AI 发布周回顾

Meilisearch AI 发布回顾:通过 AI 和个性化改变搜索

Maya Shin
Maya Shin2025 年 3 月 28 日
Introducing Meilisearch's next-generation indexer: 4x faster updates, 30% less storage

介绍 Meilisearch 的下一代索引器:更新速度快 4 倍,存储空间减少 30%

2024 年索引器版本通过并行处理、优化的 RAM 使用率和增强的可观察性彻底改变了搜索性能。了解我们最新版本的新功能。

Louis Dureuil
Louis Dureuil2025 年 2 月 26 日