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

我们很高兴地宣布 Meilisearch v1.14 发布。在本文中,我们将重点介绍此版本中的关键更改和改进。
有关所有更新和修复的完整列表,请访问 GitHub 上的更新日志。
这些强大的新功能即将登陆Meilisearch Cloud。立即注册,成为第一批体验最新改进的用户!
新增:细粒度可过滤属性设置
通过 Meilisearch v1.14,您可以使用高级对象格式配置可过滤属性,这让您可以精确指定为每个属性模式启用哪些过滤功能。
{ "filterableAttributes": [ { "attributePatterns": ["genre", "artist"], "features": { "facetSearch": true, "filter": {"equality": true, "comparison": false } } }, { "attributePatterns": ["*rank"], "features": { "facetSearch": false, "filter": {"equality": true, "comparison": true } } }, { "attributePatterns": ["albumId"], "features": { "facetSearch": false, "filter": {"equality": true, "comparison": false } } }, ] }
- 字符串属性(例如,
genre
、artist
):启用分面搜索和相等运算符(=
/!=
)用于分类过滤,同时禁用比较运算符(>
、<
、>=
、<=
),因为它们对于字符串值来说是不必要的。 - 数字属性(例如,
*rank
):启用比较运算符(>
、<
、>=
、<=
)用于范围过滤,同时禁用分面搜索,因为它与数值数据不相关。 - 唯一标识符(例如,
albumId
):启用相等运算符用于精确匹配,同时禁用未使用的功能,例如比较运算符和分面搜索。
这种有针对性的配置可以显著提高索引性能。
实验性:复合嵌入器
Meilisearch 1.14 引入了一项新的实验性功能,让您可以在搜索和索引时使用不同的嵌入器,从而优化吞吐量和延迟。
- 使用远程嵌入器进行批量索引,因为远程嵌入器提供最高的带宽(embeddings/s)
- 使用本地嵌入器回答搜索查询,因为本地嵌入器提供最低的延迟(首次嵌入的时间)
使用新的composite
源类型配置您的嵌入器。例如,您可以将本地 Hugging Face 模型用于快速搜索,将远程推理端点用于高效索引。
{ "embedders": { "text": { "source": "composite", "searchEmbedder": { "source": "huggingFace", // locally computed embeddings using a model from the Hugging Face Hub "model": "baai/bge-base-en-v1.5", "revision": "a5beb1e3e68b9ab74eb54cfd186867f64f240e1a" }, "indexingEmbedder": { "source": "rest", // remotely computed embeddings using Hugging Face inference endpoints "url": "https://URL.endpoints.huggingface.cloud", "apiKey": "hf_XXXXXXX", "documentTemplate": "Your {{doc.template}}", "request": { "inputs": [ "{{text}}", "{{..}}" ] }, "response": [ "{{embedding}}", "{{..}}" ] } } } }
Meilisearch 会根据当前操作自动选择合适的嵌入器。
在您的项目概览中,勾选“实验性功能”下的“复合嵌入器”复选框即可激活此功能。如果您是自托管 Meilisearch,请通过/experimental-features
路由启用它。
实验性:缓存嵌入
Meilisearch 1.14 带来了一项新的实验性功能,允许您缓存搜索查询嵌入,当同一查询多次运行时,显著提高性能。
要启用搜索查询嵌入缓存,请在启动 Meilisearch 时使用以下任一实例选项,指定要存储在缓存中的最大条目数
--experimental-embedding-cache-entries=150
标志MEILI_EXPERIMENTAL_EMBEDDING_CACHE_ENTRIES=150
环境变量
启用后,Meilisearch 会存储搜索查询的嵌入向量,从而无需重复为相同的查询生成嵌入。这在以下场景中尤为有价值:
- 相同的查询频繁重复
- 您正在跨多个索引使用多重搜索
- 您已实现本地分片,其中相同的查询被发送到不同的索引
新增:按ID获取文档
您现在可以通过主键获取一组文档
// POST /indexes/INDEX_UID/documents/fetch { "ids": [785084, 44214, 473], }
以上查询将返回相应的文档
{ "results": [ { "id": 44214, "title": "Black Swan" }, { "id": 473, "title": "Pi" }, { "id": 785084, "title": "The Whale" } ], "offset": 0, "limit": 20, "total": 3 }
贡献者鸣谢
我们要向所有为本次发布做出贡献的贡献者表示衷心的感谢。特别感谢@MichaScant在Meilisearch上的工作,@oXtxNt9U对Heed的贡献,@ptondereau在Arroy上的努力,以及@NarHakobyan和@mosuka对Charabia的贡献。我们对您的支持和合作深表感谢。
v1.14 的更新到此为止!这些发布说明仅强调了最重要的更新。要查看详细列表,请查阅 GitHub 上的更新日志。
欲了解更多信息,请订阅我们的每月新闻稿,或加入我们的产品讨论。
如需其他帮助,请加入我们的开发者社区Discord。