AI 驱动的混合搜索正在进行封闭测试。加入等待列表以获取早期访问权限!

返回主页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 'https://127.0.0.1:7700/indexes/movies/search' 
--data '{ "q": "thriller", "filter": ["genres = Horror", "genres = Mystery"]}'

在此示例中,我们创建一个仅返回分类为恐怖和神秘的电影的过滤器。

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

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

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

短语搜索

Meilisearch v0.21 支持短语搜索。如果将一个或多个搜索词用双引号括起来(例如,“非裔美国诗人”“约翰·沃特斯”),Meilisearch 将仅返回包含这些词且顺序与写入顺序相同的文档。当您知道搜索应该只获得一个结果时(例如,使用 ISBN 号查找书籍时),短语搜索是使查询更精确的好方法,并且很方便。

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

Web 界面

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

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

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

$ ./meilisearch --no-analytics=true

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

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

$ curl 'https://127.0.0.1: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 中找到。

其他更改

  • 您可能会注意到索引器中的性能略有提高:这是一项正在进行中的工作,我们渴望收到您对此的反馈
  • wordsPosition 排名规则已合并到 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 个索引的限制

Bug 修复

  • Windows 实例在启动时不再立即占用最大索引大小
  • 排名规则 Words 现在按预期工作
  • 转储现在可以正确导出所有文档字段,无论它们是否存在于 displayedAttributes

贡献者

这其中有很多归功于我们的社区:我们真诚地对您的慷慨感到谦卑。Meilisearch 因为您而成为更好的搜索引擎。

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

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


这就是此版本的所有内容!要全面了解所有更改(重大或其他),您可以查看我们的变更日志

Meilisearch 1.12

Meilisearch 1.12

Meilisearch 1.12 带来了显着的索引速度改进,并引入了新的 API 来禁用前缀搜索和分面搜索,以及检索任务批次。

Laurent Cazanove
Laurent Cazanove2024 年 12 月 23 日
Meilisearch Q4 2024 release wrap-up

Meilisearch 2024 年第四季度发布总结

Meilisearch 第四季度发布包括更快的搜索、对 UI 中设置的更多控制以及一个新区域。

Maya Shin
Maya Shin2024 年 11 月 27 日
Meilisearch 1.11

Meilisearch 1.11

Meilisearch 1.11 通过关键改进(包括二进制量化)将 AI 驱动的搜索推向稳定化。此版本还根据用户反馈增强了联合搜索功能。

Carolina Ferreira
Carolina Ferreira2024 年 10 月 29 日