Meilisearch 是 Rust 实现的高性能开源搜索引擎,可作为 Elasticsearch 的替代方案,支持方便地集成到任何网站或应用程序,支持自托管 (self-hosting),可作为 Algolia 和 Elasticsearch 的轻量替代方案。Meilisearch 内置了许多实用功能,比如:
- 快速的输入即搜索 (search-as-you-type) 体验,也称作 “即时搜索”
- 支持冗错 / 纠错搜索 (typo tolerance)
- 支持多面搜索 (faceted search)
- 支持基于地理位置的搜索 (geosearch)
- 支持多租户 (multi-tenancy)
Meilisearch 最新稳定版 1.4 已于今天发布,此版本引入了两个重要的实验性功能:向量存储和分数详情,并包含多项性能改进和错误修复。
新功能 (实验性)
-
向量存储 (Vector Store):
-
允许存储和搜索向量 (Embeddings)。
-
新增
embedders
和prompt
索引设置。 -
新增
/indexes/:index_uid/embeddings
API 端点用于添加向量。 -
新增
/indexes/:index_uid/settings/embedders
和/indexes/:index_uid/settings/prompt
API 端点用于配置嵌入器和提示。 -
新增
vector
搜索参数用于纯向量搜索。 -
新增
hybrid
搜索参数用于混合 (关键字 + 向量) 搜索。
-
-
分数详情 (Score Details):
-
新增
showRankingScoreDetails
搜索参数 (设置为true
)。 -
在搜索结果的
_rankingScoreDetails
字段中返回每个文档详细的排名分数计算信息。
-
性能改进
-
索引性能:通过优化 Roaring Bitmaps 的内存使用,显著提高了大型文档的索引速度。
-
内存使用:降低了索引过程中的内存消耗。
-
搜索性能:通过优化 Roaring Bitmaps 的交集计算,提升了包含大量候选结果的搜索查询性能。
-
排名分数:提高了排名分数计算的精确度。
其他改进
-
/features
端点:添加了vectorStore
和scoreDetails
到/features
API 端点,以表明这些实验性功能是否启用。 -
错误信息:改进了无效
filter
和sort
语法的错误提示信息。
Bug 修复
-
修复了索引非常大的文档 (接近 4GB) 时可能发生的崩溃问题。
-
修复了在大量文档上使用
sort
时可能发生的崩溃问题。 -
修复了同时使用
sort
和distinct
时可能返回不正确结果的问题。 -
修复了
attributesToSearchOn
设置在某些情况下未正确应用的问题。 -
修复了
attributesToRetrieve
与distinct
结合使用时无法正常工作的问题。 -
修复了在索引过程中发生崩溃后可能导致索引损坏的问题。
下载地址:https://github.com/meilisearch/meilisearch/releases/tag/v1.14.0