想要更好地控制您的搜索设置?了解我们的灵活的基础设施定价

回到主页Meilisearch 的标志
返回文章

v1.1 中的新功能

准备好迎接我们的最新版本,其中包含备受期待的多索引搜索和其他激动人心的新功能!

2023 年 4 月 3 日阅读 4 分钟
Carolina Ferreira
卡罗莱纳·费雷拉Meilisearch 开发者布道师@CarolainFG
What’s new in v1.1
分享文章

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

新功能:多重搜索 API 端点

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

假设您有两个不同的数据集:“品牌”和“产品”。如果您可以同时搜索两者,并让它们在各自的索引中保持分离,那不是很方便吗?您可以通过查询多个索引来执行联合搜索,也称为多索引搜索

curl 
-X POST 'https://: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 'https://: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 'https://: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(一个开源系统监控和警报工具包)兼容的数据。这个实验性端点为 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.16

Meilisearch 1.16

Meilisearch 1.16 引入了多模态嵌入和新的 API,用于在实例之间传输数据。

Laurent Cazanove
Laurent Cazanove2025年8月5日
Meilisearch 1.15

Meilisearch 1.15

Meilisearch 1.15 引入了新的拼写容错设置、字符串过滤器比较运算符,并改进了对中文的支持。

Carolina Ferreira
Carolina Ferreira2025年6月10日
Meilisearch 1.14

Meilisearch 1.14

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

Carolina Ferreira
Carolina Ferreira2025年4月14日
© . This site is unofficial and not affiliated with Meilisearch.