相似文档 实验性功能

    /similar 路由使用 AI 驱动的搜索来返回与目标文档相似的若干文档。

    Meilisearch 公开了两个用于检索相似文档的路由:POSTGET。在大多数情况下,POST 将提供更好的性能和易用性。

    激活 `/similar`

    这是一个实验性功能。要使用它,您必须首先启用并配置 AI 驱动的搜索

    使用 POST 获取相似文档

    POST/indexes/{index_uid}/similar

    检索与特定搜索结果相似的文档。

    路径参数

    名称类型描述
    index_uid *字符串所请求索引的uid

    请求体

    参数类型默认值描述
    id字符串或数字null目标文档的标识符(必填)
    embedder字符串"default"计算推荐时使用的嵌入器。必填
    attributesToRetrieve字符串数组["*"]要在返回的文档中显示的属性
    offset整数0要跳过的文档数量
    limit整数20返回的最大文档数量
    filter字符串null按属性值过滤查询
    showRankingScore布尔值false显示文档的全局排名得分
    showRankingScoreDetails布尔值false显示详细的排名得分信息
    rankingScoreThreshold数字null排除排名得分较低的结果
    retrieveVectors布尔值false返回文档向量数据

    示例

    curl \
      -X POST 'https://127.0.0.1:7700/indexes/INDEX_NAME/similar' \
      -H 'Content-Type: application/json' \
      -H 'Authorization: Bearer DEFAULT_SEARCH_API_KEY' \
      --data-binary '{
        "id": TARGET_DOCUMENT_ID,
        "embedder": "EMBEDDER_NAME"
      }'

    响应:200 OK

    {
      "hits": [
        {
          "id": "299537",
          "title": "Captain Marvel"
        },
        {
          "id": "166428",
          "title": "How to Train Your Dragon: The Hidden World"
        }
        {
          "id": "287947",
          "title": "Shazam!"
        }
      ],
      "id": "23",
      "processingTimeMs": 0,
      "limit": 20,
      "offset": 0,
      "estimatedTotalHits": 3
    }
    

    使用 GET 获取相似文档

    GET/indexes/{index_uid}/similar

    检索与特定搜索结果相似的文档。

    路径参数

    名称类型描述
    index_uid *字符串所请求索引的uid

    查询参数

    参数类型默认值描述
    id字符串或数字null目标文档的标识符(必填)
    embedder字符串"default"计算推荐时使用的嵌入器。必填
    attributesToRetrieve字符串数组["*"]要在返回的文档中显示的属性
    offset整数0要跳过的文档数量
    limit整数20返回的最大文档数量
    filter字符串null按属性值过滤查询
    showRankingScore布尔值false显示文档的全局排名得分
    showRankingScoreDetails布尔值false显示详细的排名得分信息
    rankingScoreThreshold数字null排除排名得分较低的结果
    retrieveVectors布尔值false返回文档向量数据

    示例

    curl \
      -X GET 'https://127.0.0.1:7700/indexes/INDEX_NAME/similar?id=TARGET_DOCUMENT_ID&embedder=EMBEDDER_NAME'

    响应:200 OK

    {
      "hits": [
        {
          "id": "299537",
          "title": "Captain Marvel"
        },
        {
          "id": "166428",
          "title": "How to Train Your Dragon: The Hidden World"
        }
        {
          "id": "287947",
          "title": "Shazam!"
        }
      ],
      "id": "23",
      "processingTimeMs": 0,
      "limit": 20,
      "offset": 0,
      "estimatedTotalHits": 3
    }