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

返回首页Meilisearch 的徽标
返回文章
2024 年 5 月 7 日

Meilisearch 1.8

Meilisearch 1.8 带来了负关键词搜索、搜索鲁棒性和 AI 搜索的改进,包括新的嵌入器。

Carolina Ferreira
Carolina Ferreira开发者布道师 @ Meilisearch@CarolainFG
Meilisearch 1.8

Meilisearch 1.8 也已在 Meilisearch Cloud 上提供——立即升级!

新增:负搜索

Meilisearch 1.8 允许您使用 - 运算符从搜索结果中排除特定术语。 

例如,要查找包含单词“room”但不包含“escape”的文档,请在“escape”前放置一个 -

curl 
  -X POST 'https://edge.meilisearch.com/indexes/places/search' 
  -H 'Content-Type: application/json' 
  --data-binary '{ "q": "-escape room" }'

实验性功能:改进的混合搜索

AI 搜索是一项实验性功能。请在这个 GitHub 讨论中提供反馈。

新的 Ollama 嵌入器

Meilisearch 1.8 引入了对 Ollama 模型 的支持。在您的索引设置中配置嵌入器

"default": {
  "source": "ollama", // 👈 Use the ollama source
  "url": "http://localhost:11434/api/embeddings",
  // ☝️ optional, fetched from MEILI_OLLAMA_URL environment variable if missing
  "apiKey": "<your-api-key>",
  // ☝️ optional
  "model": "nomic-embed-text",
  "documentTemplate": "{{doc.field_name}}" // like for openAI and huggingFace sources
}

新的 REST 嵌入器

从 Meilisearch 1.8 开始,您可以使用任何通过 REST API 访问的嵌入器。以下是如何使用 rest 源配置 OpenAI 嵌入器的方法

{
  "source": "rest",
  "apiKey": "<your-openai-api-key>",
  "dimensions": 1536,
  "url": "https://api.openai.com/v1/embeddings",
  "query": {
    "model": "text-embedding-ada-002"
  },
  "inputField": ["input"],
  "inputType": "textArray",
  "pathToEmbeddings": ["data"],
  "embeddingObject": ["embedding"]
}

有关 API 和可用参数的更多详细信息,请查阅关于 REST 嵌入器的文档。

新的嵌入器设置:分布偏移

这是一个用于自定义模型的高级 API。OpenAI 和 Hugging Face 模型不需要此设置。

根据嵌入模型,向量嵌入并非始终在 向量空间内均匀分布。当向量过度聚集时,语义搜索分数可能会非常接近排名。由于语义分数被压缩,混合结果可能具有次优的相关性。

为了解决这个问题,您现在可以使用仿射变换来偏移结果的分布。此变换标准化语义分数,以防止它们聚集过高或过紧,从而使它们更易于与 关键词分数相比较。

"default": {
  "source": "huggingFace",
  "model": "MODEL_NAME",
  "distribution": {  // describes the natural distribution of results
    "mean": 0.7, // mean value
    "sigma": 0.3 // standard deviation
  }
}

  • 均值值表示您观察到语义搜索分数密集聚集的中心点。在提供的代码示例中,该设置表明来自此模型的语义分数倾向于聚集在 0.7 的均值附近。
  • 西格玛值确定了排名分数与均值(标准差)的离散程度。上面代码示例中提供的西格玛意味着在偏移分布之前,结果往往具有与均值 0.3 的平均距离。

这允许更有效地比较语义搜索结果和关键词搜索结果之间的 _rankingScore,从而改进结果排名。

重大变更:精简的 API 响应

为了加快搜索响应速度并减少带宽使用,Meilisearch v1.8 不再在搜索响应中返回以下字段

  • 返回查询向量的 vector 字段 
  • 当您向搜索查询添加 `”showRankingScoreDetails”: true”` 时返回的 vectorSort 对象中包含的 value 字段
  • _semanticScore 字段;其值与 _rankingScore 相同,您应该改用后者。在搜索参数中设置 ”showRankingScore”: true”

搜索鲁棒性改进

新的搜索截止设置

为了增强稳定性和性能,Meilisearch 会自动终止任何超过 1500 毫秒的搜索请求。 

要调整此超时阈值,您可以自定义 searchCutoffMs 设置

curl 
  -X PATCH 'https://edge.meilisearch.com/indexes/movies/settings' 
  -H 'Content-Type: application/json' 
  --data-binary '{
    "searchCutoffMs": 150
  }'

实验性功能:并发搜索请求限制

此版本引入了对并发搜索请求的限制,以防止 Meilisearch 使用过多的 RAM 并崩溃。默认队列限制设置为 1000 个请求。 

要修改此限制,请使用 --experimental-search-queue-size 选项重新启动您的自托管实例

./meilisearch --experimental-search-queue-size 100

👉 此限制不会影响搜索性能。它仅控制可以同时排队的搜索请求数量,以增强系统安全性。

请在这个 GitHub 讨论中提供关于并发搜索请求限制的反馈。

贡献者致谢

我们衷心感谢所有参与此版本的社区成员。我们要感谢:@availhang@hack3ric@jakobklemm@mohsen-alizadeh@redistay@rohankmr414@shuangcui@Toromyx@6543 对 Meilisearch 的帮助,以及 @Gusted@mosuka@6543Charabia 的工作。

特别感谢我们的 SDK 维护者,感谢他们使 Meilisearch 可以在如此多的语言中使用。🫶


v1.8 的内容就是这些!此版本发布文章重点介绍了最重要的更新。有关详尽的列表,请阅读 Github 上的更新日志

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

如有其他任何问题,请加入我们在 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 日