向量搜索能够有效地检索具有相似特征的对象。这种人工智能驱动的搜索技术使用嵌入向量。这些向量是由机器学习模型(如 LLM)生成的,代表对象的数学表示。从 1.3 版本开始,Meilisearch 支持存储和搜索向量。

🚀
Meilisearch v1.3 发布!阅读 发布说明

向量搜索可能是搜索新时代的曙光。它的用例很多。在 电子商务 中,它可以提供类似产品的推荐。它还允许构建多模态搜索,例如图像或音频搜索。基于对话式人工智能技术可以创建问答应用程序。将向量搜索与用户提供的信息(如地理位置和搜索历史记录)结合起来,可以实现更具语境的搜索体验。

向量搜索也是 语义搜索 的基础,其目标是理解查询的含义。相反,传统的词法搜索只匹配关键词。使用语义搜索,一个 暖和的衣服 查询可以给出 手套外套 以及更多与冬季服装相关的结果。

向量搜索为搜索开辟了一个新世界。来看看一些用户已经实现了什么:

💡
Meilisearch 可用作 LangChain 向量存储

开始使用 Meilisearch 向量存储


从 v1.3 版本开始,您可以使用 Meilisearch 作为向量存储。Meilisearch 允许您将向量嵌入方便地存储在文档旁边。您需要使用您选择的第三方工具(Hugging FaceOpenAI)创建向量嵌入。

首先,启动一个 Meilisearch 实例。您可以 在本地安装 Meilisearch 或创建一个 Meilisearch 云 帐户。

然后,启用 向量存储 实验性功能

curl \
  -X PATCH 'https://127.0.0.1:7700/experimental-features/' \
  -H 'Content-Type: application/json'  \
  --data-binary '{
    "vectorStore": true
  }'
💡
本指南使用 curl 向 Meilisearch 发送 HTTP 请求进行通信。在实践中,我们建议使用我们的 SDK

Meilisearch 现在接受您文档中的 _vector 字段。使用它在这个字段中存储与您的文档相对应的向量嵌入。

curl -X POST -H 'content-type: application/json' \
     'localhost:7700/indexes/songs/documents' \
     --data-binary '[
         { "id": 0, "_vectors": [0, 0.8, -0.2], "title": "Across The Universe" },
         { "id": 1, "_vectors": [1, -0.2, 0], "title": "All Things Must Pass" },
         { "id": 2, "_vectors": [0.5, 3, 1], "title": "And Your Bird Can Sing" }
     ]'

将向量化后的文档存储在 Meilisearch 中后,您可以使用 searchmulti-search 路由查询它们。为此,您需要计算查询的向量(使用第三方工具)并将其发送到 vector 字段中。

curl -X POST -H 'content-type: application/json' \
   'localhost:7700/indexes/songs/search' \
   --data-binary '{ "vector": [0, 1, 2] }'

使用向量搜索时,返回的文档将包含 semanticScore 字段

{
  "hits": [
    { "id": 0, "_vectors": [0, 0.8, -0.2], "title": "Across The Universe", "_semanticScore": 0.6754 },
    { "id": 1, "_vectors": [1, -0.2, 0], "title": "All Things Must Pass", "_semanticScore": 0.7546 },
    { "id": 2, "_vectors": [0.5, 3, 1], "title": "And Your Bird Can Sing", "_semanticScore": 0.78 }
  ],
  "query": "",
  "vector": [0, 1, 2],
  "processingTimeMs": 0,
  "limit": 20,
  "offset": 0,
  "estimatedTotalHits": 2
}
💬
此 API 处于实验阶段。您可以通过在 此 Github 讨论 中分享您的反馈来帮助我们改进它。

向量搜索是我们迈向语义搜索的第一步。但我们的长期目标是提供混合搜索——将全文搜索和语义搜索的优势结合起来,以提供最相关的搜索体验。Meilisearch 的创始人兼 CTO Clément Renault 在 Github 上分享了他对 探索语义搜索 的想法——阅读以了解创始人的观点。我们迫不及待地想与您分享更多信息!

在下方留下您的电子邮件以了解我们的人工智能驱动的搜索进展。我们将随时向您通报有关向量搜索和语义搜索的所有更新。

Get Meilisearch AI updates straight to your inbox 💌

* indicates required

Please select all the ways you would like to hear from Meilisearch:

You can unsubscribe at any time.

We use Mailchimp to send emails.

我们很高兴迈出迈向语义搜索的第一步。我们迫不及待地想听到您关于将 Meilisearch 作为向量存储集成的想法。您可以在 此 Github 讨论 中提供您的反馈。

您可以通过订阅我们的 时事通讯 来了解最新动态。要了解有关 Meilisearch 未来发展的更多信息并帮助塑造它,请查看我们的 路线图 并参与我们的 产品讨论

其他任何事项,请加入我们开发者社区的 Discord

在那儿见。