向量搜索可以有效检索共享相似特征的对象。这种AI驱动的搜索技术使用嵌入向量。这些向量是机器学习模型(如LLM)生成的对象的数学表示。在即将发布的1.3版本中,Meilisearch将支持存储和搜索向量。
Meilisearch v1.3的释放候选人已出版try it now!
为搜索的未来提供动力
向量搜索可能是搜索新时代的曙光。它的用例众多。在ecommerce中,它可以为类似产品提供建议。它还允许构建多模式搜索,例如图像或音频搜索。在对话AI技术的基础上,可以创建问答应用程序。将矢量搜索与用户提供的信息相结合,例如地理位置和搜索历史记录可以为更多的上下文搜索体验提供动力。
向量搜索也是semantic search的基础,该基础旨在了解查询的含义。相反,传统的词汇搜索仅与关键字匹配。通过语义搜索,warm clothes
查询可以给出gloves
,coat
和更多与冬季服装相关的结果。
矢量搜索解锁了搜索新功能的世界。看看一些用户已经实施的内容:
- similar videos recommendations在列出红宝石会议的网站上
- 使用GPT3.5和LangChain的documentation chatbot概念验证证明
Meilisearch Vector Store入门
从v1.3开始,您可以将Meilisearch用作矢量商店。 Meilisearch允许您方便地将矢量嵌入在文档旁边存储。您需要使用首选的第三方工具(Hugging Face,OpenAI)创建向量嵌入。当我们发布第一个v1.3 release candidate时,您可以立即尝试矢量搜索。
首先,使用此Docker图像来拉动候选者:
docker run -p 7700:7700 -v $(pwd)/meili_data:/meili_data getmeili/meilisearch:v1.3.0-rc.0
然后,启用矢量存储实验功能:
curl \
-X PATCH 'http://localhost:7700/experimental-features/' \
-H 'Content-Type: application/json' \
--data-binary '{
"vectorStore": true
}'
ðâ€本指南使用卷曲来提出HTTP请求与Meilisearch进行通信。当V1.3将正式发布时,您将可以使用相应的SDK methods。
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], [-0.2, 4, 6]], "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], [-0.2, 4, 6]], "title": "And Your Bird Can Sing", "_semanticScore": 0.78 }
],
"query": "",
"vector": [0, 1, 2],
"processingTimeMs": 0,
"limit": 20,
"offset": 0,
"estimatedTotalHits": 2
}
ð¢此API是实验性的。您可以通过在this Github discussion中分享您的反馈来帮助我们改善它。
迈向语义搜索的第一步
向量搜索是我们迈向语义搜索的第一步。但是,我们的长期目标是提供混合搜索,结合全文和语义搜索的好处,以提供最相关的搜索体验。 Meilisearch的创始人兼首席技术官ClâmentRenault分享了他对Github关于exploring semantic search的想法,以了解创始人的观点。我们可以等待与您分享更多!
将您的电子邮件放在下面,以通过AI驱动的搜索了解有关我们进度的更多信息。我们会让您发布有关矢量搜索和语义搜索的所有更新。
我们很高兴迈出第一步,走向语义搜索。我们可以等待您听到您将Meilisearch作为矢量商店集成的想法。您可以在this Github discussion中提供反馈。
您可以通过订阅我们的newsletter来保持循环。要了解有关Meilisearch的未来并帮助塑造它的更多信息,请查看我们的roadmap并参加我们的Product Discussions。
对于其他任何事物,请加入我们的开发人员社区。p>
我会在那里见。