返回主页Meilisearch 的标志
返回文章
2021年8月23日

v0.21 中的新功能

了解 Meilisearch v0.21 中的一些重大变化

Gui Machiavelli
Gui MachiavelliMeilisearch 团队
What’s new in v0.21

今天标志着 Meilisearch v0.21 的发布,这是我们自 2021 年 3 月以来的第一个新版本。正如您所料,这个版本为我们的搜索引擎带来了大量变化,无论是大是小。您可以查看我们详尽的更新日志,其中列出了所有破坏性更改并可以在此处下载二进制文件,但在本文中,我们希望更深入地了解一些最重要的更新。

搜索性能

首先,我们能给您的最好消息之一是:v0.21 是迄今为止最快的 Meilisearch 版本。有多快?我们使用包含 1.15 亿文档的 1GB 数据集进行测试表明,复杂查询返回结果的速度比 v0.20 快十倍;以前很慢的过滤操作,现在最多只需 50 毫秒。

重构

Clémentine 已经撰写了关于我们为何选择重构核心引擎基础部分的文章,但以防您错过:我们发现越来越难以保持代码对外部贡献者友好且易于阅读,同时在不负面影响性能的情况下添加新功能。

我们为这几个月所取得的成就感到非常自豪,不仅因为我们大大提高了 Meilisearch 的性能,还因为我们知道我们的搜索引擎拥有了一个全新的、坚如磐石的基础。

分面和过滤器

v0.21 中一些最显著(且具破坏性)的变化涉及分面和过滤器。

首先,搜索参数 filtersfacetFilters 已被 filter 替换。这个新参数允许您根据文档属性(其值可以是数字或字符串)来精炼搜索结果。

$ curl 'http://localhost:7700/indexes/movies/search' 
--data '{ "q": "thriller", "filter": ["genres = Horror", "genres = Mystery"]}'

在这个例子中,我们创建一个过滤器,只返回同时被归类为恐怖片和悬疑片的电影。

要将属性与 filter 搜索参数一起使用,您必须首先将其添加到新的 filterableAttributes 索引设置中。filterableAttributes 的工作方式与 attributesForFaceting 索引设置完全相同,并取代了它。

$ curl 
  -X POST 'http://localhost:7700/indexes/movies/settings' 
  --data '{
      "filterableAttributes": [
          "director",
          "genres"
      ]
  }'

Meilisearch 不再区分分面和过滤器:您可以使用新的 filter 搜索参数和 filterableAttributes 索引设置来创建分面搜索界面

短语搜索

Meilisearch v0.21 支持短语搜索。如果您将一个或多个搜索词用双引号括起来(例如,“african-american poet”“John Waters”),Meilisearch 将只返回包含这些词语,且顺序和书写方式完全一致的文档。短语搜索是使查询更精确的好方法,当您知道搜索应该只得到一个结果时(例如,使用 ISBN 号码查找书籍时),它会非常有用。

$ curl 'http://localhost:7700/indexes/movies/search' 
  --data '{ "q": ""John" Waters" }'

Web 界面

如果您不知道,当您在开发模式下启动实例时,Meilisearch 会自动创建一个 Web 界面,以便您立即测试我们的搜索引擎。我们已经更新了这个界面,使其更易于使用(也更美观)!

新的遥测页面和更简单的分析设置

默认情况下,Meilisearch 会从所有使用我们搜索引擎的实例中收集匿名数据。我们已使其更易于禁用此行为,并在我们的文档中添加了一个新页面,详细解释了我们收集哪些数据以及如何使用它们。隐私对我们来说是一个重要问题,因此请随时分享您的任何意见、疑虑或建议。

$ ./meilisearch --no-analytics=true

突出显示数组和对象字段中的匹配项

Meilisearch v0.20 允许您突出显示字符串字段中匹配的搜索词,以便用户可以确切地看到一个词语在文档中的位置。在 v0.21 中,我们已将此功能扩展到支持字符串数组和嵌套对象。和以前一样,您可以在每个返回文档的 _formatted 对象中找到突出显示的匹配项。

$ curl 'http://localhost:7700/indexes/movies/search' 
  --data '{ 
		"q": "adventure", 
    	"attributesToHighlight": ["title", "genres"] 
	}'
{
  "id": "50393",
  "title": "The Adventures of Huck Finn",
  "overview": "Climb aboard for an extraordinary version of Mark Twain's sweeping adventure when Walt Disney presents The Adventures of Huck Finn, starring Elijah Wood.",
  "release_date": 733712400,
  "genres": ["Adventure","Family"]
  "_formatted": {
      "id": "50393",
      "title": "The <em>Adventures</em> of Huck Finn",
      "overview": "Climb aboard for an extraordinary version of Mark Twain's sweeping adventure when Walt Disney presents The Adventures of Huck Finn, starring Elijah Wood.",
      "release_date": 733712400,
      "genres": ["<em>Adventure</em>","Family"]
  }
}

标题和流派的突出显示匹配项可在 _formatted 内部获取。

其他变化

  • 您可能会注意到索引器有轻微的性能改进:这是一项正在进行中的工作,我们渴望获得您的反馈
  • The wordsPosition ranking rule has been merged into attribute
  • max-mdb-size 已更名为 [max-index-size](https://docs.meilisearch.com/reference/features/configuration.html#max-index-size)
  • 现在可以使用人类可读的单位(例如 KbGb)来指定 [max-index-size](https://docs.meilisearch.com/reference/features/configuration.html#max-index-size)[http-payload-limit-size](https://docs.meilisearch.com/reference/features/configuration.html#payload-limit-size)
  • 我们已移除每个实例 200 个索引的限制

错误修复

  • Windows 实例启动时不再立即占用最大索引大小
  • The ranking rule Words 现在按预期工作
  • Dumps 现在可以正确导出所有文档字段,无论它们是否在 displayedAttributes

贡献者

这一切在很大程度上归功于我们的社区:我们真诚地感谢您的慷慨。正因为有您,Meilisearch 才成为了一个更好的搜索引擎。

我们要特别感谢 @sanders41@bb:你们的错误报告和反馈非常有帮助!

最后,非常感谢 @shekhirin 在新搜索引擎实现方面提供的所有帮助。


本次发布就到这里!要全面了解所有更改,包括破坏性更改和其他更改,您可以查看我们的更新日志

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日