跳到主要内容

📘 语义搜索

如今,我们不能在没有讨论 AI、ML 和 LLMs 的情况下举办技术活动。那么,让我们谈谈语义搜索。

什么是语义搜索?

语义搜索是一种使用词语含义来查找相关结果的搜索技术。它是推动我们现在看到的大语言模型的动力。

使用语义搜索,即使搜索词不出现在结果中,我们也能找到相关结果。例如,如果我们搜索“如何做蛋糕”,我们可以找到包含“如何烤蛋糕”或“如何做馅饼”词语的结果。

这是通过向量完成的。向量是词语的数学表示。它们用于找到词语之间的相似性。例如,“蛋糕”这个词与“馅饼”这个词相似,因为它们都是甜点。

如何创建语义搜索引擎

在我们的图书馆应用程序中,让我们改变搜索栏的工作方式。试着改变搜索栏的行为,根据书籍的含义而不仅仅是词语本身来查找书籍。

这将帮助我们在搜索“瘟疫末日”时找到《The Stand(末日逼近)》这本书。(用中文搜索同样能搜到英文相关书籍)

即使这些词不出现在书名或描述中,我们也希望能够找到它们。

你可以使用类似的方法为你的客户提供与他们正在查看的项目相似的项目。例如,如果客户正在查看一双登山靴,你可以向他们展示他们可能需要的其他装备。

MongoDB 在哪里发挥作用?

凭借其文档模型,MongoDB 非常适合存储向量。你可以将向量作为数字数组存储在文档中。

当需要搜索相关结果时,我们可以像进行全文搜索一样,利用 Lucene 的强大功能。