回到主页Meilisearch 的标志
返回文章
2023年4月3日

v1.1 中的新功能

准备好迎接我们最新版本,其中包含备受期待的多索引搜索功能以及其他令人兴奋的新特性!

Carolina Ferreira
Carolina FerreiraMeilisearch 开发者布道师@CarolainFG
What’s new in v1.1

让我们看看 Meilisearch 最新更新中的一些最重要变化。我们将在本文中介绍主要变化,您也可以在 GitHub 上查看完整更新日志

新功能:多重搜索 API 端点

随着 /multi-search API 端点的引入,Meilisearch 允许您使用单个 HTTP 请求发送多个搜索查询。这将使您能够完成许多不同的事情,例如联邦搜索和多选分面!

联邦搜索

假设您有两个不同的数据集:“品牌”和“产品”。如果能同时搜索两者,并将其分别保留在各自的索引中,那岂不是非常方便?您可以通过查询多个索引来执行联邦搜索,也称为多索引搜索。

curl 
-X POST 'http://localhost:7700/multi-search' 
-H 'Content-Type: application/json' 
--data-binary '{
  "queries": [
     {
       "indexUid": "products",
       "q": "Nike",
       "limit": 1
     },
    {
       "indexUid": "brands",
       "q": "Nike",
       "limit": 1
    }
  ]
}'

响应是一个 results 数组,其中包含每个查询索引的一个对象。

{
 "results": [
   {
     "indexUid": "products",
     "hits": […],
     "query": "Nike",
     "processingTimeMs": 1,
     "limit": 1,
     "offset": 0,
     "estimatedTotalHits": 17
   },
   {
     "indexUid": "brands",
     "hits": […],
     "query": "Nike",
     "processingTimeMs": 0,
     "limit": 1,
     "offset": 0,
     "estimatedTotalHits": 7
   }
 ]
}

多选分面

多重搜索请求 API 在分面搜索界面中实现多选分面行为时特别有用。

多选分面(也称为析取分面)允许用户同时查看符合多个条件的项目。这种类型的界面还会显示每个选项可用的项目数量,即使这些项目尚未被选中。这有助于用户快速有效地探索符合其特定标准的项目,最终节省时间和精力。

由于多选分面按照包含性的 OR 逻辑运行,计算它们需要向 Meilisearch 发送多个查询。单独发送这些查询可能会导致性能下降,并可能增加托管服务成本。

使用 /multi-search 端点,您可以在单个请求中向同一索引发送多个查询,从而优化性能并降低托管成本。

在 v1.1 之前,通过 Instant Meilisearch 实现析取分面行为是可行的,但需要向 API 发出多个请求。现在 Instant Meilisearch 使用了 /multi-search 端点,此变通方法已不再需要。

查阅我们的文档以了解更多关于多重搜索请求分面搜索

新功能:_geoBoundingBox

边界框是完全包围一个区域的矩形框。借助新的 _geoBoundingBox 筛选表达式,您可以在矩形地理区域内搜索结果。

它需要两个参数,分别对应所需区域的右上角(东北)和左下角(西南)的坐标:_geoBoundingBox([lat, lng], [lat, lng])

curl 
-X POST 'http://localhost:7700/indexes/restaurants/search' 
-H 'Content-type:application/json' 
--data-binary '{ "filter": "_geoBoundingBox([45.472735, 9.184019],[45.473711, 9.185613] )" }'

请查阅我们关于根据地理坐标筛选结果的指南

新功能:引入 facetStats

在搜索查询中使用 facets 参数时,搜索结果对象现在将包含一个 facetStats 对象,提供每个数值分面的最小值和最大值。任何没有数值的分面都将被省略。

假设有一个产品索引,您想知道最高价和最低价,以便实现一个范围滑块组件。

curl 
 -X POST 'http://localhost:7700/indexes/products/search' 
 -H 'Content-Type: application/json' 
 --data-binary '{
 "facets": ["price"]
 }'

您将获得包含所有必要信息的以下响应,可直接使用。

{
   "hits": […],
   "facetDistribution": {
     "price": {…}
   },
   "facetStats": {
     "price": {
       "min": 1.99,
       "max": 1898.28
     }
   }
 }

实验性功能:使用 Prometheus 进行系统监控

此版本引入了一个新的 /metrics 端点,提供与 Prometheus 兼容的数据。Prometheus 是一个开源的系统监控和警报工具包。这个实验性端点为 Meilisearch 的行为和性能提供了有价值的见解。

要启用它,请在启动 Meilisearch 时使用 --experimental-enable-metrics 标志。

您计划使用此功能吗?请在 GitHub 讨论中告诉我们您的体验。

改进:取消索引大小和数量限制

Meilisearch 已取消了每个实例的索引数量和大小限制,因此您可以根据需要创建任意数量的索引 🥳

现在唯一的限制是您的操作系统为单个进程分配的内存地址空间。请在文档中阅读更多内容。

其他改进

  • 您现在可以在管理 API 密钥和租户令牌时,在索引名称的末尾使用通配符(*)。例如,"medical*" 将匹配 medical_recordsmedical_equipement 索引。
  • 您可以使用 csvDelimiter 参数来覆盖默认的 CSV 分隔符(单个逗号 ,),该参数用于 添加或更新文档添加或替换文档 端点。
  • 现在,交错的文档添加和删除任务会自动进行批处理,从而加快了索引过程。
  • 我们出色的社区帮助我们增强了对希腊语和阿拉伯语的支持。
  • 语言检测现在在索引时进行,减少了搜索时错误的语言识别,从而提高了相关性。

我们非常感谢所有参与此次发布的社区成员。我们要感谢:@akhildevelops@AymanHamdoun@cymruu@FrancisMurillo@GregoryConrad@gregsadetsky@james-2001@MixusMinimax@waveywaves@ztkmkooMeilisearch 提供的帮助。

我们还要特别感谢 @choznerol@cymruu@james-2001Charabia 方面所做的工作。

v1.1 的更新内容就是这些!请记住查看更新日志以获取完整的发布说明。如果您有任何疑问或想了解最新动态,可以加入我们的 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 版索引器通过并行处理、优化的内存使用和增强的可观测性,彻底改变了搜索性能。查看我们最新版本中的新功能。

Louis Dureuil
Louis Dureuil2025年2月26日