检索相关搜索结果

本指南将展示如何使用相似文档端点创建一个基于AI的电影推荐工作流。

首先,您将创建一个嵌入器(embedder)并向索引添加文档。然后执行搜索,并使用顶部结果的primary key来检索数据库中相似的电影。

前提条件

  • 一个运行中的Meilisearch项目
  • 一个等级≥2的OpenAI API密钥

创建新索引

创建一个名为movies的索引,并将这个movies.json数据集添加到其中。如有需要,请参考入门指南获取更多关于索引创建的说明。

数据集中的每个文档代表一部电影,具有以下结构:

  • id: 数据库中每个文档的唯一标识符
  • title: 电影标题
  • overview: 电影情节的简要概述
  • genres: 与电影相关的类型数组
  • poster: 电影海报图片的URL
  • release_date: 电影上映日期,以Unix时间戳表示

配置嵌入器

接下来,使用 Cloud UI 配置一个 OpenAI 嵌入器:

你也可以使用 /settings/embedders API 子路由来配置嵌入器:

MEILISEARCH_URLMEILISEARCH_API_KEYOPENAI_API_KEY 替换为你应用中的对应值。

Meilisearch 将开始为数据集中的所有电影生成嵌入向量。使用返回的 taskUid跟踪此任务的进度。完成后,你就可以开始搜索了。

执行混合搜索

当文档添加完毕且所有嵌入向量生成完成后,你可以执行搜索:

该请求会返回一个电影列表。选择排名第一的结果并记录其在 id 字段中的主键。在本例中,是电影”Batman”,其 id 为 192。

返回相似文档

将”Batman”的 id 传递到索引的 /similar 路由,并指定 movies-text 作为你的嵌入器:

Meilisearch 将返回与你选择的电影最相似的 20 个文档列表。然后你可以选择向用户展示其中一些相似结果,引导他们发现可能感兴趣的其他电影。

总结

恭喜!您已成功使用 Meilisearch 构建了一个由 AI 驱动的电影搜索与推荐系统,具体实现了以下功能:

  • 搭建 Meilisearch 项目并配置 AI 驱动的搜索功能
  • 实现结合关键词搜索与语义搜索的混合搜索方案
  • 集成 Meilisearch 的相似性搜索实现电影推荐功能

在实际应用中,您现在可以开始将此工作流集成到前端界面中,例如这篇 Meilisearch 官方博客文章 中展示的示例。