向量搜索能够有效地检索具有相似特征的对象。这种人工智能驱动的搜索技术使用嵌入向量。这些向量是由机器学习模型(如 LLM)生成的,代表对象的数学表示。从 1.3 版本开始,Meilisearch 支持存储和搜索向量。
赋能未来的搜索
向量搜索可能是搜索新时代的曙光。它的用例很多。在 电子商务 中,它可以提供类似产品的推荐。它还允许构建多模态搜索,例如图像或音频搜索。基于对话式人工智能技术可以创建问答应用程序。将向量搜索与用户提供的信息(如地理位置和搜索历史记录)结合起来,可以实现更具语境的搜索体验。
向量搜索也是 语义搜索 的基础,其目标是理解查询的含义。相反,传统的词法搜索只匹配关键词。使用语义搜索,一个 暖和的衣服
查询可以给出 手套
、外套
以及更多与冬季服装相关的结果。
向量搜索为搜索开辟了一个新世界。来看看一些用户已经实现了什么:
开始使用 Meilisearch 向量存储
从 v1.3 版本开始,您可以使用 Meilisearch 作为向量存储。Meilisearch 允许您将向量嵌入方便地存储在文档旁边。您需要使用您选择的第三方工具(Hugging Face、OpenAI)创建向量嵌入。
首先,启动一个 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 中后,您可以使用 search
或 multi-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
}
语义搜索的第一步
向量搜索是我们迈向语义搜索的第一步。但我们的长期目标是提供混合搜索——将全文搜索和语义搜索的优势结合起来,以提供最相关的搜索体验。Meilisearch 的创始人兼 CTO Clément Renault 在 Github 上分享了他对 探索语义搜索 的想法——阅读以了解创始人的观点。我们迫不及待地想与您分享更多信息!
在下方留下您的电子邮件以了解我们的人工智能驱动的搜索进展。我们将随时向您通报有关向量搜索和语义搜索的所有更新。
我们很高兴迈出迈向语义搜索的第一步。我们迫不及待地想听到您关于将 Meilisearch 作为向量存储集成的想法。您可以在 此 Github 讨论 中提供您的反馈。
您可以通过订阅我们的 时事通讯 来了解最新动态。要了解有关 Meilisearch 未来发展的更多信息并帮助塑造它,请查看我们的 路线图 并参与我们的 产品讨论。
其他任何事项,请加入我们开发者社区的 Discord。
在那儿见。