检索相关搜索结果

    本指南向您展示如何使用相似文档端点来创建 AI 驱动的电影推荐工作流程。

    首先,您将创建一个嵌入器并将文档添加到您的索引。然后,您将执行搜索,并使用排名靠前的结果的主键来检索数据库中相似的电影。

    先决条件

    创建一个新索引

    创建一个名为 movies 的索引,并将此 movies.json 数据集添加到其中。如有必要,请查阅入门指南,以获取有关索引创建的更多说明。

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

    配置嵌入器

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

    Animated image of the Meilisearch Cloud UI showing a user clicking on "add embedder". This opens up a modal window, where the user fills in the name of the embedder, chooses OpenAI as its source. They then select a model, input their API key, and type out a document template.

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

    curl -X PATCH 'MEILISEARCH_URL/indexes/movies/settings' 
      -H 'Content-Type: application/json' 
      -H 'Authorization: Bearer MEILISEARCH_API_KEY' 
      --data-binary '{
        "embedders": {
          "movies-text": {
            "source": "openAi",
            "apiKey": "OPENAI_API_KEY",
            "model": "text-embedding-3-small",
            "documentTemplate": "A movie titled '{{doc.title}}' released in {{ doc.release_date }}. The movie genres are: {{doc.genres}}. The story is about: {{doc.overview|truncatewords: 20}}"
          }
        }
      }'

    MEILISEARCH_URLMEILISEARCH_API_KEYOPENAI_API_KEY 替换为您应用程序中的相应值。

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

    添加文档并生成所有嵌入后,您可以执行搜索

    curl -X POST 'MEILISEARCH_URL/indexes/INDEX_NAME/search' \
      -H 'content-type: application/json' \
      -H 'Authorization: Bearer DEFAULT_SEARCH_API_KEY' \
      --data-binary '{
        "q": "batman",
        "hybrid": {
          "embedder": "EMBEDDER_NAME"
        }
      }'

    此请求返回电影列表。选择排名靠前的结果,并记下其主键在 id 字段中。在本例中,它是电影“蝙蝠侠”,id 为 192。

    返回相似文档

    将“蝙蝠侠”的 id 传递给索引的 /similar 路由,指定 movies-text 作为您的嵌入器

    curl \
      -X POST 'MEILISEARCH_URL/indexes/movies/similar' \
      -H 'Content-Type: application/json' \
      -H 'Authorization: Bearer DEFAULT_SEARCH_API_KEY' \
      --data-binary '{
        "id": 192,
        "embedder": "EMBEDDER_NAME"
      }'

    Meilisearch 将返回一个列表,其中包含与您选择的电影最相似的 20 个文档。然后,您可以选择向用户展示其中一些相似的结果,向他们推荐可能也感兴趣的其他电影。

    结论

    恭喜!您已成功使用 Meilisearch 构建了一个 AI 驱动的电影搜索和推荐系统,通过:

    在实际应用中,您现在将开始把这个工作流程集成到前端,例如这篇 Meilisearch 官方博客文章 中所示。