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

返回首页Meilisearch 的标志
返回文章
2023 年 3 月 20 日

Meilisearch v0.9:新功能?

Meilisearch v0.9: What’s new?

我们刚刚发布了新版本,其开发受到了我们对易用性渴望的驱动。

我们意识到,由于设计选择,某些功能不易使用。整个团队围坐在一起,讨论了 API 路由及其 RESTful 性,直到每个人都同意一个提案。我们希望在简单性和自定义之间取得良好的平衡。

那么 v0.9 中有哪些新功能呢?

  • 模式删除!
  • 包含用于试用搜索的 Web 界面
  • 新的设置处理方式
  • 简化的自定义排名规则
  • 添加了主键
  • 新的内置排名规则名称
  • 简化的身份验证
  • 生产和开发模式
  • 错误修复、语法更改和改进

无模式

无模式的想法在我们脑海中已经存在很长时间了。在开始使用时,用户不应被要求指定 Meilisearch 应如何处理每个字段,而只有当他们的需求确实很具体和不寻常时才需要这样做。
现在,默认情况下,Meilisearch 将显示每个文档字段,使它们都可搜索,并将根据提供的文档结构推断文档的主键。
此解决方案在开始使用 Meilisearch 时造成的摩擦要小得多。

Web 界面

在以前的版本中,一旦您启动了 Meilisearch 引擎并在其中插入了一些文档,流畅的体验就到此为止了。为了试用搜索,您必须使用 curl 或 SDK 提交请求,或者创建一个连接到 Meilisearch 的前端搜索栏。

现在,Web 界面已随 Meilisearch 一起发布,您只需打开 Web 浏览器并输入 Meilisearch 的地址即可在本地访问它。这将引导您到一个网页,其中包含一个搜索栏,您可以在选定的索引中进行搜索。

movies_web_2-1

由于生产环境需要 API 密钥才能进行搜索,因此 Web 界面仅在开发模式下可用。

设置

现在,任何对于启动和运行 Meilisearch 实例都不是必需的东西都可以在设置中配置。

对于每个设置,都有一个路由,因此可以仅更新特定设置。全局设置路由使您可以发布描述您的自定义设置的配置文件,这将有助于基于相同设置创建类似的 Meilisearch 实例。

示例

{
  "rankingRules": [
      "typo",
      "words",
      "proximity",
      "attribute",
      "wordsPosition",
      "exactness",
      "desc(release_date)"
  ],
  "distinctAttribute": null,
  "searchableAttributes": [
      "title",
      "description",
      "uid"
  ],
  "displayedAttributes": [
      "title",
      "description",
      "release_date",
      "rank",
      "poster"
  ],
  "stopWords": null,
  "synonyms": {
      "wolverine": ["xmen", "logan"],
      "logan": ["wolverine", "xmen"]
  },
  "indexNewFields": false
}

所有设置都可以在这里找到

简化的自定义排名规则

在以前的版本中,创建自己的规则可能会令人困惑。我们简化了这项任务!您现在只需在排名规则列表中在您的字段之一上添加升序 (asc()) 或降序 (desc()) 规则即可。

 "rankingRules": [
      "typo",
      "words",
      "proximity",
      "attribute",
      "wordsPosition",
      "exactness",
      "desc(release_date)"
  ]

如果您按照此示例更新排名规则,您将注意到 Meilisearch 已立即考虑了您的更改。这意味着一旦应用了所有其他规则,Meilisearch 将认为具有较新 release_date 的文档比旧文档更相关。

主键

Meilisearch 将尝试从您上传的文档中推断主键。此推断将搜索属性中包含字符串 id 的第一个字段。
有时,可能找不到任何键。在这种情况下,Meilisearch 无法推断它。

由于 Meilisearch 需要主键来存储文档,如果无法推断后者,我们设置了两种替代方法来将主键传达给 Meilisearch。

  • 在索引创建时给出
{
  "uid": "movies",
  "primaryKey": "movieUniqueName"
}
  • 在文档添加时给出
curl -X POST 'http://localhost:7700/indexes/movies/documents?primaryKey=movieUniqueName' --data @movies.json

新的排名规则名称

在以前的版本中,排名规则名称太长,并且可能包含不必要的特殊字符。从现在开始,它们已被简化。以下是新的内置排名规则列表

  • typo
  • words
  • proximity
  • attribute
  • wordsPosition
  • exactness

请遵循本指南以了解有关每个排名规则作用的更多信息.

简化的身份验证

当向 Meilisearch 添加主密钥时,将在启动时生成私钥和公钥。
公钥仅授予执行搜索和获取文档的路由的权限。
私钥授予对 Meilisearch 中除 GET /keys 路由之外的所有其他路由的访问权限。由于它返回公钥和私钥,因此只有使用主密钥才能访问此路由。

阅读此内容以了解有关 Meilisearch 中身份验证的更多信息.

生产和开发模式

启动 Meilisearch 实例时,现在可以将设置环境作为一个选项。
默认情况下,环境设置为开发模式。

在开发模式下,您无需提供主密钥。在这种情况下,无需任何 API 密钥即可访问每个路由。您还可以访问 Web 界面

在生产模式下,如果未给出主密钥,则实例将被视为对生产不安全并且不会启动。

错误修复、语法更改和改进

  • 删除了更新系统中的死锁
  • 即使在不知道主键的情况下也可以添加设置
  • POST /documents/delete 更改为 POST /documents/delete-batch
  • 加速重新索引系统
  • 当搜索期间未提示突出显示时,返回的文档中将没有 _highlighted 字段
  • 从搜索查询参数中删除了 searchableAttributes
  • 要了解索引的统计信息,现在的路由是:GET /indexes/:index_uid/stats 而不是 GET /stats/:index_uid
  • 文档 ID 只能包含以下字符:A-Z a-z 0-9-_

我们对路由设计进行的一些调整是我们为了发布工作版本而采取的临时选择。/key 路由就是一个例子,虽然功能齐全,但过于简单,不能满足开发人员的常见需求。我们目前正在考虑如何更好地处理它,并且我们欢迎任何建议!

此版本花费了我们大约三个月的时间才完成,考虑到 v0.8.5 尚未正式发布,但已添加到 v0.9 版本中。我们在流程组织方面做了大量工作,以确保一切都同时准备就绪:核心 Meilisearch、文档和 SDK。

我们对这些最新更改将如何改善用户使用 Meilisearch 的体验感到非常兴奋。此版本是我们贡献者和我们之间大量讨论的结果。我们渴望听到您使用 Meilisearch 的体验。任何建议或反馈都非常欢迎,因为这些都是建立在我们今天所做决策之上的长期而雄心勃勃的项目的前提。

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 日