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

返回首页Meilisearch's logo
返回文章
05 Jun 2023

v1.2 版本的新功能?

Meilisearch 1.2 版本为过滤器带来了新的功能,并全面改进了引擎。

Laurent Cazanove
Laurent Cazanove开发者体验工程师StriftCodes
What's new in v1.2?

我们很高兴地宣布 Meilisearch v1.2 版本的发布。这个小版本包含了过滤器的新功能和全面的引擎改进。 让我们深入了解最值得注意的更改!

新功能:通过过滤器增强文档管理

我们很高兴通过引入用于获取和删除文档的过滤器来改善 Meilisearch 开发者的体验。🥳

与往常一样,对于过滤器,文档字段必须首先设置为 可筛选属性

检索文档

过滤器为获取文档带来了新的功能。 例如,我们可以先检查有多少文档与某些过滤器匹配,然后再执行删除操作。

因此,我们引入了一个新的端点来检索文档

**POST** /indexes/{indexUid}/documents/fetch

假设有一个包含电影的索引。我们将编写一个请求,以检索 10 部恐怖片或悬疑片类型的电影。 使用 数组语法,我们可以在请求正文中将过滤器表示如下

{
  "filter": [
    "genre = Horror",
    "genre = Mystery"
  ],
  "limit": 10
}

这个新端点使您无需发出搜索请求即可浏览数据。 在专用文档中阅读有关使用过滤器获取文档的更多信息。

删除文档

现在,您可以删除与过滤器列表匹配的文档。 此功能带有一个专用端点

**POST** /indexes/{indexUid}/documents/delete

以包含电影的索引为例,让我们编写一个请求,以删除所有恐怖片或喜剧片,以及由詹姆斯·卡梅隆执导的电影。 这可以用以下请求正文表示

{
  "filter": [
    [ "genre = Horror", "genre = Comedy" ],
    "director = "James Cameron""
  ]
}

此请求启动一个任务以删除匹配的文档。 Meilisearch 将使用摘要任务对象进行响应

{
  "taskUid": 42,
  "indexUid": "movies",
  "status": "enqueued",
  "type": "documentDeletion",
  "enqueuedAt": "2023-06-05T11:01:58.721841Z"
}

此任务表示异步删除操作。 不要忘记检查任务状态,以确保在继续之前已删除文档。 在专用文档中阅读有关删除文档的更多信息。

新功能:IS EMPTYIS NULL 过滤器运算符

此版本为过滤器赋予了新的功能。 因此我们思考,我们如何才能更进一步? 也许我们可以用更多方式进行过滤。 我的意思是,您不想要更多过滤器来配合您的过滤吗?

因此,我们引入了两个新的过滤器运算符:IS EMPTYIS NULLIS EMPTY 匹配具有空值的现有属性,而 IS NULL  匹配具有空值的字段。

这是一个考虑以下文档的示例

[
  {
    "id": 0,
    "color": []
  },
  {
    "id": 1,
    "color": null
  },
  {
    "id": 2,
  }
]

新的过滤器运算符的工作方式如下

  • color IS EMPTY:匹配文档 0
  • color IS NULL:匹配文档 1

请注意,IS EMPTYIS NULL 都不匹配缺少 color 字段的文档。 这两个运算符也可以与 NOT 结合使用。 在相关文档中阅读更多信息。

实验性功能:减少内存使用量

我们引入了一个新的实验性标志,以减少 Meilisearch 的 RAM 使用量。 尝试使用 --experimental-reduce-indexing-memory-usage CLI 标志或 MEILI_EXPERIMENTAL_REDUCE_INDEXING_MEMORY_USAGE 环境变量启动 Meilisearch。

您可以在此 Github 讨论中提供反馈。

改进:相关性

我们增强了拼写容错。 分词现在被认为是拼写错误,这意味着 whit ehorse 现在可能与包含 white horse 的文档匹配。 但是,n-gram 和分词现在的排名会更低。 这意味着 sun flower 现在将返回包含 Sun Flower 的文档,而不是包含 Sunflower 的文档。

改进:自动任务删除

Meilisearch 异步处理诸如向索引添加文档之类的操作。 这意味着它们不会立即处理。 相反,Meilisearch 将它们放入任务队列中,并按照接收顺序处理它们。 从 v1.2 开始,任务队列的最大容量为 100 万。

一旦队列已满,Meilisearch 将尝试删除最旧的 100,000 个任务。 Meilisearch 不会删除未完成(已排队或正在处理)的任务。 它只会尽可能多地删除 100,000 个最旧的已完成任务。

当任务的自动删除失败时,Meilisearch 将发出 `warning_`_ 级别的日志。

其他更改

  • 更新了 Meilisearch 处理排名规则的方式,以提高搜索一致性和延迟
  • 现在,地理搜索排序对于降序和升序排序都更高效
  • 借助 charabia 更新,增强了对拉丁语和阿拉伯语的语言支持

结论

这总结了 Meilisearch v1.2 中最大的变化。 有关详尽的审查,包括安全更新和错误修复,请查阅更新日志

我们已经在准备 Meilisearch 的 1.3 版本。 我们已经准备好三个原型供您试用:搜索刻面值排序刻面值以及  CONTAINS、 STARTS WITH 和 ENDS WITH 过滤器运算符。 我们渴望听到您的反馈,以完成最后的润色。

没有 @cymruu@GregoryConrad@inductor@jirutka@jlucktay@roy9495@Sufflopemeilisearch 的贡献,此版本是不可能发布的。 这也包括 @akeamc@DrAliRagab@goodhoko@mosukacharabia 最新版本的贡献,以不断改进语言支持。 非常感谢我们出色的贡献者。 🫶

您可以通过订阅我们的新闻通讯来随时了解最新动态。 要了解有关 Meilisearch 未来并帮助塑造它的更多信息,请查看我们的 路线图 并参与我们的 产品讨论

加入 /r/rust 上的讨论。

如有其他任何问题,请加入我们在 Discord 上的开发者社区。

我们在那里见。

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 日