使用多模态检索

更新时间:
复制 MD 格式

通过场景模板创建多模态检索场景后,可导入官方示例数据快速体验,并使用内置的检索测试验证语义检索、混合检索与跨模态检索效果。

步骤一:创建多模态检索场景

  1. 登录目标实例,在左侧导航栏选择 AI服务中心> 多模态检索。

  2. 单击 创建多模态场景,按向导完成五步配置:

    • 场景信息:选择场景模板,并填写场景基本信息。

      场景名称为 3~32 个字符,以字母开头,支持字母、数字、中划线(-)和下划线(_);描述为可选项,不超过 128 个字符。

    • 数据同步:场景数据源为 API,创建后通过 API 推流方式写入全量与增量数据。

    • Mapping语义配置:展示模板预置字段。

      文本类型字段可执行语义检索升级派生语义字段,也可取消语义配置;语义字段绑定向量模型自动生成,不可编辑。可单击创建字段新增业务字段。

      首次使用时,需在此开通 AI 搜索开放平台以提供向量化等模型服务,不同模板的预置字段见下方字段表。

    • 索引及设置:查看由 Mapping 自动生成的向量索引字段与其它字段,并设置索引的分片数与副本数。分片数建议与数据节点数一致,副本数默认为 1。

    • 确认场景:核对场景名称、模板、索引名、模型以及索引字段。系统在此预览完整的建索引请求(PUT /{场景名}),可复制请求到 Kibana 控制台执行。确认无误后单击确认创建。

各场景模板的适用场景如下:

场景模板

说明

文本语义检索

面向文档、FAQ、商品描述等文本检索场景。

图文检索

面向图文商品、素材库等图文检索场景,支持以文搜图、以图搜图。

文本语义检索模板的预置字段:

字段

类型

说明

title

text

标题

content

text

正文,开启语义检索升级后派生 content_semantic

category

keyword

分类,用于过滤

doc_id

keyword

业务主键

content_semantic

semantic_text

系统派生的语义检索字段,由向量模型 text-embedding-v4 自动生成

图文检索模板的预置字段:

字段

类型

说明

mm_content

semantic_text

图文语义字段,由向量模型 qwen3-vl-embedding 生成,承载文本与图片 URL

image_url

keyword

图片地址

description

text

描述

title

text

标题,含 keyword 子字段

category

keyword

分类

doc_id

keyword

业务主键

tags

keyword

标签

创建成功后,场景出现在多模态检索列表中,索引名与场景名一致。

步骤二:导入示例数据

导入与场景模板配套的官方示例数据,无需自行准备数据即可体验完整的向量化与检索链路。示例数据仅写入索引中已存在的字段。

  1. 在场景列表中单击目标场景的管理,进入场景详情页。

  2. 在基本信息页签的示例数据集试用卡片中,单击导入示例数据。

  3. 系统分批写入并显示进度,导入完成后提示成功。文本语义检索场景导入 60 条,图文检索场景导入 40 条。

    单击预览数据可查看示例数据内容,单击前往检索测试可直接跳转到检索测试。

步骤三:检索测试

在场景详情页的检索测试页签,选择查询模板,输入 Query 文本与返回条数后单击执行检索。系统根据模板自动生成检索请求(POST /{索引}/_search),可复制请求到 Kibana 控制台执行;检索结果按 _score 排序展示,可切换源码预览查看原始返回。检索使用场景已授权的访问凭证。

文本语义检索场景支持以下查询模板:

  • 传统检索(BM25):基于 content 字段的关键词全文检索,分词命中即可召回。

    { "size": 10, "query": { "match": { "content": "如何注册演示账户?" } } }
  • 语义检索:基于 content_semantic 字段的语义召回,由 Elasticsearch 内建向量化查询文本。

    { "size": 10, "query": { "semantic": { "field": "content_semantic", "query": "如何注册演示账户?" } } }
  • 混合检索(RRF):使用 RRF 融合关键词检索与语义检索两路结果。

    {
      "size": 10,
      "retriever": {
        "rrf": {
          "retrievers": [
            { "standard": { "query": { "match": { "content": "如何注册演示账户?" } } } },
            { "standard": { "query": { "semantic": { "field": "content_semantic", "query": "如何注册演示账户?" } } } }
          ]
        }
      }
    }

图文检索场景支持以下查询模板:

  • 以文搜图:文本查询经 mm_content(qwen3-vl-embedding)映射到跨模态语义空间进行召回。

    { "size": 10, "query": { "semantic": { "field": "mm_content", "query": "夜用纸尿裤 要防漏设计" } } }
  • 以图搜图:输入图片 URL,经 query_vector_builder 向量化后对 mm_content 执行 kNN 检索。图片 URL 需满足图片域名白名单要求。

    {
      "size": 10,
      "query": {
        "knn": {
          "field": "mm_content",
          "k": 10,
          "num_candidates": 100,
          "query_vector_builder": {
            "embedding": { "input": { "type": "image", "format": "url", "value": "https://img.example.com/xxx.jpg" } }
          }
        }
      }
    }
  • 图文双路(RRF):融合文本与图片两路检索结果。

管理与删除场景

在场景详情页可通过以下页签管理场景:

页签

说明

基本信息

查看场景名称、场景类型、索引名、数据源类型、状态等,并可导入示例数据。

索引信息

查看索引字段、类型、关联模型及来源;单击字段配置可管理字段。

检索测试

输入查询验证检索效果。

如需删除场景,在场景列表中单击目标场景的删除,在确认提示中单击确认。删除后不可恢复。

通过 API 写入与检索数据

创建场景后,通过标准 Elasticsearch API 向场景索引(索引名与场景名一致)写入全量与增量数据,写入的字段需与索引 Mapping 中已定义的字段一致。写入的文本或图文内容会由绑定的向量模型自动向量化,无需手动生成向量。数据写入后,即可使用上述检索请求进行检索。