通过数据接口管理知识库文档

更新时间:
复制 MD 格式

PolarDB企业知识空间提供数据接口(PolarRAG API),支持通过HTTP请求完成托管文档上传、文档状态查询、文档删除和知识检索。本文介绍数据接口的接入准备、基础约定和各接口的调用方法。

适用范围

本文仅描述客户侧数据接口。知识空间、知识库、模型和权限等管理配置请通过控制台或OpenAPI完成,不在本文范围内。调用数据接口前,请确保已准备以下资源:

  • 一个已创建的PolarDB知识库。创建方法请参见使用企业知识空间。

  • 已获取调用数据接口所需的信息,详见下表:

    信息

    说明

    示例

    space_id

    企业知识空间ID,形如pks-xxx。

    pks-xxx

    kb_id

    控制台中目标知识库的ID,形如pkb-xxx。

    pkb-xxx

    OpenSearch访问地址

    数据接口的访问地址,即企业知识空间绑定的PolarSearch连接地址。仅ACL Disabled Space需要。

    http://<opensearch-host>:<port>

    调用凭据

    搜索节点账号,作为OpenSearch访问凭据。仅ACL Disabled Space需要。

    <username>:<password>

    OSS文件路径

    待入库文件所在的OSS路径,格式必须为oss://<bucket>/<object_key>。

    oss://xxx_bucket/docs/report.pdf

  • 数据接口的接入方式取决于企业知识空间的ACL 模式(是否开始了文档 ACL):

    空间模式

    客户接入方式

    开放空间(ACL Disabled)

    可以使用本文列出的OpenSearch REST接口直连,调用账号须具备对应权限。

    权限感知空间(ACL Enforced)

    必须通过PolarDB Agentic Server(MCP Server)上传、查询、删除和检索,不使用本文的直连示例。

    说明

    权限感知空间(ACL Enforced)中,MCP Server根据已认证用户的SSO claims在服务端生成可信acl_context,客户端、模型或工具参数不得自行传入或覆盖身份信息。

开通、连接与版本确认

企业知识空间的开通和控制台操作请参见对应文档,本文不再展开:

获取企业知识空间版本

使用上传接口前,建议先查询当前运行的企业知识空间版本,以确定是否支持省略doc_id:

curl -sS -u '<username>:<password>' \
  'http://<opensearch-host>:<port>/_plugins/_polar_rag/_version'

当安装包携带1.0.6发布标识时,响应形如:

{
  "version": "t-polardb-rag-1.0.6-20260814175603.al8.x86_64"
}
  • 确认为1.0.6或更高版本:上传支持缺省doc_id,推荐缺省。

  • 低于1.0.6:必须显式提供doc_id。

  • 返回404、unknown、仅有OpenSearch插件描述版本(例如3.3.2-SNAPSHOT)或无法确认企业知识空间发布版本:按旧版本兼容处理,显式提供doc_id。

接口总览

数据接口提供以下能力:

场景

方法

路径

ACL访问说明

上传单个托管文档

POST

/_plugins/_polar_rag/spaces/{space_id}/managed_documents

  • 开放空间(ACL Disabled)可直接连接

  • 权限感知空间(ACL Enforced)请使用MCP Server

批量上传托管文档

POST

/_plugins/_polar_rag/spaces/{space_id}/managed_documents/_bulk

  • 开放空间(ACL Disabled)需受信管控账号

  • 权限感知空间(ACL Enforced)请使用MCP Server

查询单个文档状态

GET

/_plugins/_polar_rag/documents/{doc_id}/status

  • 开放空间(ACL Disabled)可直接连接

  • 权限感知空间(ACL Enforced)请使用MCP Server

批量查询文档状态

POST

/_plugins/_polar_rag/documents/_batch_status

  • 开放空间(ACL Disabled)可直接连接

  • 权限感知空间(ACL Enforced)请使用MCP Server

删除单个托管文档

DELETE

/_plugins/_polar_rag/spaces/{space_id}/managed_documents/{doc_id}

  • 开放空间(ACL Disabled)可直接连接

  • 权限感知空间(ACL Enforced)请使用MCP Server并校验MANAGE权限

查询删除任务

GET

/_plugins/_polar_rag/delete_tasks/{task_id}

  • 开放空间(ACL Disabled)可直接连接

  • 权限感知空间(ACL Enforced)跟随删除工具,请使用MCP Server

搜索知识内容

POST

/_plugins/_polar_rag/spaces/{space_id}/search

  • 开放空间(ACL Disabled)可直接连接

  • 权限感知空间(ACL Enforced)请使用MCP Server

基础约定

Base URL

http://<opensearch-host>:<port>/_plugins/_polar_rag

接口详情中的路径均以/_plugins/_polar_rag开头,实际请求时请拼接实际的搜索节点地址。

认证与权限

如果服务启用了OpenSearch Security,请在开放空间(ACL Disabled)模式下的直连请求中请携带搜索节点的账号密码:

curl -u '<username>:<password>' ...
说明
  • 账号能连接搜索节点不代表自动拥有所有接口权限。文档上传,尤其是批量上传,需要您提供具备对应写入或受信管控权限的账号。权限不足时会返回403。

  • 权限感知空间(ACL Enforced)不使用本文的Basic Auth直连方式访问数据面,必须通过PolarDB Agentic Server(MCP Server)。

请求格式

接口类型

Content-Type

普通JSON接口

application/json

批量上传文档

application/json

时间字段使用ISO-8601 UTC字符串。

OSS路径填写规则

文档上传时需要填写oss_path,格式必须是:

oss://<bucket>/<object_key>

参数说明

项目

正确填写

说明

Bucket名称

xxx_bucket

只有bucket名,不带endpoint

Bucket完整域名

xxx_bucket.oss-cn-beijing.aliyuncs.com

常用于控制台或外部访问地址展示

Endpoint

oss-cn-beijing.aliyuncs.com

表示地域入口,不是bucket名

文档路径oss_path

oss://xxx_bucket/docs/report.pdf

API上传文档时使用

说明
  • 不要把OSS endpoint填进oss_path。

  • 如果只填xxx_bucket报不存在错误,通常是因为当前字段需要完整文档路径,应填写oss://xxx_bucket/<文件路径>。

示例

oss://xxx_bucket/docs/report.pdf

常见状态码

状态码

含义

200

请求成功、幂等返回,或删除已完成

201

单文档新提交/重新提交成功;或批量请求failed == 0

202

删除仍在后台处理,需使用task_id继续查询

400

请求体格式错误或参数非法

403

权限不足;ACL Enforced Space直连时可能返回acl_context_required

404

文档或删除任务不存在

409

资源正在提交、删除或存在并发状态冲突

503

服务依赖暂不可用

500

服务端内部错误,或删除结果为FAILED

示例

  • 常见错误响应:

    {
      "error_type": "invalid_parameter",
      "error": "kb_id is required"
    }
  • 权限感知空间(ACL Enforced)误用直连接口时可能返回:

    {
      "error_type": "acl_context_required",
      "error": "Use the protected document endpoint"
    }

数据接入流程

开放空间(ACL Disabled)

  1. 将文件上传到当前空间可访问的OSS Bucket。

  2. 查询企业知识空间版本;1.0.6及以上推荐省略doc_id,旧版本或版本不明确时显式提供。

  3. 调用托管文档上传接口,保存响应中的document.doc_id。

  4. 轮询文档状态至COMPLETED或FAILED,完成后再搜索;删除返回PROCESSING时继续查询删除任务。

权限感知空间(ACL Enforced)

通过PolarDB Agentic Server(MCP Server)完成资源发现、上传、状态查询、删除和搜索。MCP Server负责从认证会话生成可信ACL身份上下文。

文档上传

说明
  • 版本要求:省略doc_id是企业知识空间1.0.6新增的能力。1.0.6及以上版本推荐省略,由服务端生成稳定ID;低于1.0.6的版本必须显式传入doc_id。

  • 适用边界:本章REST示例仅适用于开放空间(ACL Disabled)。权限感知空间(ACL Enforced)请通过PolarDB Agentic Server(MCP Server)上传。

建议通过OSS自动同步功能上传文档,具体操作请参见使用企业知识空间。您也可以通过以下托管文档上传接口上传文档。

上传单个文档

提交OSS中的文件进行解析、分块和索引。

请求

  • 请求地址:

    POST /_plugins/_polar_rag/spaces/{space_id}/managed_documents
    Content-Type: application/json

    路径参数:

    参数

    类型

    必填

    说明

    space_id

    string

    是

    企业知识空间ID,最大64个字符。

  • 请求示例(1.0.6 及以上版本推荐省略 doc_id):

    {
      "kb_id": "pkb-xxx",
      "oss_path": "oss://xxx_bucket/docs/report.pdf",
      "filename": "report.pdf",
      "file_type": "pdf",
      "file_md5": "replace_with_actual_file_md5",
      "file_size_bytes": 123456,
      "source": "customer_api",
      "metadata": {
        "category": "技术文档"
      }
    }
    说明

    示例中的replace_with_actual_file_md5为占位值,调用时请替换为OSS对象的实际MD5值,并填写与该对象一致的file_size_bytes。

  • 请求字段说明:

    字段

    类型

    必填

    说明

    doc_id

    string

    1.0.6 起可选

    • 1.0.6 及以上推荐省略,由服务端生成稳定 UUID

    • 低于 1.0.6 版本时必填。显式传入时须全局唯一且最大 64 个字符

    kb_id

    string

    是

    控制台中目标知识库的ID,最大64个字符。

    oss_path

    string

    是

    文件的OSS路径,格式为oss://<bucket>/<object_key>,最大1024个字符。

    filename

    string

    是

    文件名,最大512个字符。

    file_type

    string

    否

    文件类型,例如pdf、docx、txt,最大32个字符。

    file_md5

    string

    否

    文件内容的MD5值,最大64个字符。

    file_size_bytes

    integer

    否

    文件大小,单位为字节。

    source

    string

    否

    文档来源标识,最大32个字符。

    metadata

    object

    否

    文档级自定义元数据。

    说明

    建议同时提供file_md5和file_size_bytes。如果相同doc_id和相同oss_path指向的OSS对象被原地覆盖,但请求未提供文件指纹,服务可能将其判定为幂等重放,不会重新入库。

响应

  • 响应示例:首次提交新文档成功时返回HTTP 201和idempotent=false,并回显请求中的doc_id。

    {
      "idempotent": false,
      "document": {
        "doc_id": "662ad95f-xxxx-xxxx-xxxx-df40999314b9",
        "space_id": "pks-xxx",
        "kb_id": "pkb-xxx",
        "oss_path": "oss://xxx_bucket/docs/report.pdf",
        "filename": "report.pdf",
        "file_type": "pdf",
        "file_md5": "replace_with_actual_file_md5",
        "file_size_bytes": 123456,
        "status": "DISPATCHED",
        "error_message": null,
        "metadata": "{\"category\":\"技术文档\"}",
        "source": "customer_api",
        "is_deleted": false
      }
    }
  • 响应字段说明:

    说明

    批量上传中成功元素的document使用同一响应结构。

    字段

    类型

    说明

    idempotent

    boolean

    false表示本次新提交或重新提交,true表示返回已有文档。

    document.doc_id

    string

    回显请求中的文档ID。

    document.space_id

    string

    企业知识空间ID。

    document.kb_id

    string

    知识库ID。

    document.oss_path

    string

    OSS对象路径。

    document.filename

    string

    文件名。

    document.file_type

    string

    文件类型。

    document.file_md5

    string或null

    文件指纹,未提供时可能为空。

    document.file_size_bytes

    integer,可选

    文件大小,未提供时该字段可能省略。

    document.status

    string

    当前文档状态的对外表示。

    document.error_message

    string或null

    处理失败信息,无错误时为空。

    document.metadata

    string或null

    当前版本上传响应中该字段为JSON字符串,不是请求中的object。请按字符串接收,需要时再解析为JSON。

    document.source

    string或null

    文档来源标识。

    document.is_deleted

    boolean

    是否已标记删除。

省略文档 ID 时的生成规则(仅 1.0.6 及以上版本适用)

  1. 服务端根据 space_id + kb_id + oss_path 生成稳定的 UUID。

  2. 同一组 space_id、kb_id、oss_path 会得到相同 doc_id,便于重试和幂等处理。

  3. 省略 doc_id 时,space_id 和 kb_id 不能包含冒号 :。

  4. 调用方必须保存响应中的 document.doc_id,后续状态查询和删除都使用该 ID。

  5. 如果业务系统已有稳定的外部文档 ID,也可以显式传入 doc_id。

幂等与重新提交语义

同一doc_id再次提交时,请结合已有文档状态判断结果:

条件

结果

已有文档状态为PENDING或DELETING。

返回HTTP 409,表示资源正在提交或删除。

身份字段相同,且已有文档状态不是FAILED。

返回HTTP 200和idempotent=true,不重新入库。

已有文档状态为FAILED,即使身份字段相同。

重新提交。成功时返回HTTP 201和idempotent=false。

身份字段发生变化。

先删除旧内容再重新提交。如果删除仍在进行中,返回HTTP 409,请稍后重试。

说明

身份字段校验字段包括oss_path、file_md5、规范化后的file_size_bytes、kb_id、filename、file_type和metadata。source不参与身份判断。

批量上传文档

批量提交OSS文件进行解析、分块和索引,单次最多提交500个文档。从 1.0.6 版本起,每个元素的 doc_id 可以省略,并按省略文档 ID 时的生成规则(仅 1.0.6 及以上版本适用)分别生成。

说明
  • 1.0.6 及以上版本推荐省略。低于 1.0.6 版本时每个元素都必须显式提供 doc_id,且每个doc_id必须全局唯一。

  • 批量上传接口需申请相关权限,暂不支持直接调用。普通搜索账号调用可能返回 403 trusted_control_plane_required。若您有相关需求,请提交工单联系我们为您处理。

  • 请求地址:

    POST /_plugins/_polar_rag/spaces/{space_id}/managed_documents/_bulk
    Content-Type: application/json
  • 请求示例:

    {
      "documents": [
        {
          "kb_id": "pkb-xxx",
          "oss_path": "oss://xxx_bucket/docs/report-1.pdf",
          "filename": "report-1.pdf",
          "file_type": "pdf",
          "file_md5": "replace_with_actual_file_md5_1",
          "file_size_bytes": 123456
        },
        {
          "doc_id": "customer_doc_002",
          "kb_id": "pkb-xxx",
          "oss_path": "oss://xxx_bucket/docs/report-2.docx",
          "filename": "report-2.docx",
          "file_type": "docx"
        }
      ]
    }
    说明

    示例中的replace_with_actual_file_md5_1为占位值,调用时请替换为对应OSS对象的实际MD5值,并保证file_size_bytes与该对象一致。

  • 响应示例:

    {
      "total": 2,
      "documents": [
        {
          "success": true,
          "idempotent": false,
          "document": {
            "doc_id": "27b950f1-xxxx-xxxx-xxxx-145d2d1c4c7a",
            "space_id": "pks-xxx",
            "kb_id": "pkb-xxx",
            "oss_path": "oss://xxx_bucket/docs/report-1.pdf",
            "filename": "report-1.pdf",
            "status": "DISPATCHED"
          }
        },
        {
          "success": true,
          "idempotent": false,
          "document": {
            "doc_id": "customer_doc_002",
            "space_id": "pks-xxx",
            "kb_id": "pkb-xxx",
            "oss_path": "oss://xxx_bucket/docs/report-2.docx",
            "filename": "report-2.docx",
            "status": "DISPATCHED"
          }
        }
      ],
      "succeeded": 2,
      "failed": 0
    }

    批量请求中的文档逐条处理,单个文档失败不会回滚已成功提交的文档:

    • 失败数为0时返回HTTP 201。即使全部成功项均为幂等返回,整体仍返回201。

    • 失败数大于0时返回HTTP 200,包括部分失败和全部失败。

    • 请逐项检查success字段。对成功项请继续检查idempotent,并按上传单个文档的规则理解对应的document.status。

重要
  • 调用上传接口前,请先将文件上传到对应的OSS Bucket。接口只接收OSS路径,不接收文件流。

  • 无论您是否传入 doc_id,服务端都会在成功项或可识别的失败项中返回最终 doc_id。

文档状态查询

文档状态查询用于查询文档的处理状态。如需召回文档内容,请使用搜索接口。

说明
  • 适用边界:本章GET .../status和批量POST .../_batch_status的直连示例仅适用于开放空间(ACL Disabled)。普通调用者查询权限感知空间(ACL Enforced)会返回403 acl_context_required,请通过PolarDB Agentic Server(MCP Server)查询,由服务端携带可信身份上下文。

  • 兼容返回字段:以下示例仅展示主要字段。实际响应可能包含其他附加字段,客户端请允许并忽略暂不识别的字段,以保持向前兼容。

查询单个文档状态

  • 请求地址:

    GET /_plugins/_polar_rag/documents/{doc_id}/status
  • 处理中的响应示例:

    {
      "doc_id": "doc_12345678",
      "status": "CHUNKING",
      "chunk_count": 0,
      "created_at": "2026-04-21T10:00:00Z",
      "updated_at": "2026-04-21T10:01:00Z",
      "space_id": "pks-xxx",
      "kb_id": "pkb-xxx",
      "filename": "report.pdf",
      "submit_retry_count": 0,
      "task": {
        "task_id": "task_12345678",
        "taskd_task_id": "taskd_xxx",
        "task_status": "DISPATCHED",
        "retry_count": 0,
        "poll_error_count": 0,
        "dispatched_at": "2026-04-21T10:01:00Z"
      }
    }
  • 处理完成的响应示例:

    {
      "doc_id": "doc_12345678",
      "status": "COMPLETED",
      "chunk_count": 15,
      "created_at": "2026-04-21T10:00:00Z",
      "updated_at": "2026-04-21T10:05:00Z",
      "completed_at": "2026-04-21T10:05:00Z"
    }
  • 处理失败的响应示例:

    {
      "doc_id": "doc_12345678",
      "status": "FAILED",
      "chunk_count": 0,
      "created_at": "2026-04-21T10:00:00Z",
      "updated_at": "2026-04-21T10:02:00Z",
      "error_message": "TaskD processing failed"
    }
  • 文档状态说明:

    状态

    含义

    PENDING

    已提交,等待派发。

    DISPATCHED

    已派发给文档处理服务。

    CHUNKING

    正在分块。

    INDEXING

    正在写入索引。

    COMPLETED

    处理完成,可以检索。

    FAILED

    处理失败,详情请参见error_message。

    DELETING

    正在删除。

批量查询文档状态

  • 请求地址:

    POST /_plugins/_polar_rag/documents/_batch_status
    Content-Type: application/json
  • 请求示例:

    {
      "doc_ids": ["doc_12345678", "doc_87654321"]
    }
  • 响应示例:

    {
      "total": 2,
      "found": 2,
      "documents": [
        {
          "doc_id": "doc_12345678",
          "status": "CHUNKING",
          "chunk_count": 0,
          "space_id": "pks-xxx",
          "kb_id": "pkb-xxx",
          "filename": "report.pdf",
          "submit_retry_count": 0
        },
        {
          "doc_id": "doc_87654321",
          "status": "COMPLETED",
          "chunk_count": 15,
          "completed_at": "2026-04-21T10:05:00Z"
        }
      ]
    }
  • 响应字段说明:

    字段

    说明

    total

    请求中的doc_id数量。

    found

    实际查询到的文档数量。found可能小于total,表示部分文档ID不存在。

    documents

    文档状态列表。

文档删除

说明
  • 版本支持:当前已发布的polar-rag-plugin 1.0.6支持本章接口,对应Tag:t-polardb-rag_R_1_0_6_20260814175603_20260814。

  • 访问边界:以下直连删除流程仅适用于开放空间(ACL Disabled)。权限感知空间(ACL Enforced)必须通过PolarDB Agentic Server(MCP Server)删除,服务端会按当前用户对目标文档的MANAGE权限执行校验。

删除单个文档

删除指定企业知识空间中的托管文档。删除完成后,文档对应的索引数据将被清理,托管文档记录将被标记为已删除。

  • 请求地址

    DELETE /_plugins/_polar_rag/spaces/{space_id}/managed_documents/{doc_id}
  • 该接口不需要请求体。路径参数:

    参数

    类型

    必填

    说明

    space_id

    string

    是

    企业知识空间ID。

    doc_id

    string

    是

    待删除的文档ID。

  • 删除完成的响应示例:

    {
      "doc_id": "doc_12345678",
      "task_id": "task_12345678",
      "status": "COMPLETED",
      "error_message": null
    }
  • 删除处理中的响应示例:

    {
      "doc_id": "doc_12345678",
      "task_id": "task_12345678",
      "status": "PROCESSING",
      "error_message": null
    }
  • 响应中的status取值说明:

    状态

    说明

    COMPLETED

    文档删除完成。

    PROCESSING

    删除任务仍在后台执行。

    FAILED

    文档删除失败,具体原因请参见error_message。

查询删除任务

使用删除接口返回的task_id查询后台删除任务的状态。

  • 请求地址:

    GET /_plugins/_polar_rag/delete_tasks/{task_id}
  • 路径参数:

    参数

    类型

    必填

    说明

    task_id

    string

    是

    删除任务ID。

  • 响应示例:

    {
      "task_id": "task_12345678",
      "task_type": "delete",
      "type": "doc_id",
      "target_id": "doc_12345678",
      "space_id": "pks-xxx",
      "status": "COMPLETED",
      "total_docs": 1,
      "deleted_docs": 1,
      "created_at": "2026-08-14T10:00:00Z",
      "completed_at": "2026-08-14T10:00:03Z"
    }
  • 任务状态说明:

    状态

    说明

    PENDING

    删除任务已创建,等待执行。

    PROCESSING

    正在删除。

    COMPLETED

    删除完成。

    FAILED

    删除失败。响应中可能包含error_message、failed_docs和failed_doc_ids字段。

    当任务状态为PENDING或PROCESSING时,请继续轮询,直到状态变为COMPLETED或FAILED。权限感知空间(ACL Enforced)的删除与任务查询应由MCP Server统一完成,不向终端客户暴露acl_context。

搜索知识内容

说明

适用边界:以下直连搜索示例仅适用于开放空间(ACL Disabled)。权限感知空间(ACL Enforced)必须通过PolarDB Agentic Server(MCP Server)检索,MCP Server根据登录用户的SSO身份在服务端生成acl_context。客户端、模型和工具参数不得自行构造或覆盖acl_context。

在指定企业知识空间中检索相关内容。您可以通过kb_id限定只检索某个知识库。

  • 请求地址

    POST /_plugins/_polar_rag/spaces/{space_id}/search
    Content-Type: application/json
  • 请求示例:

    {
      "query_text": "OpenSearch 的向量搜索功能",
      "search_mode": "balanced",
      "kb_id": "pkb-xxx",
      "size": 10,
      "min_score": 0.5,
      "reranker": false
    }
  • 请求字段:

    字段

    类型

    必填

    说明

    query_text

    string

    是

    查询文本,不能为空。

    search_mode

    string

    否

    检索模式,可选值为knn、rrf、balanced、precise和semantic,默认值为balanced。

    kb_id

    string

    否

    知识库ID过滤。指定后仅检索该知识库。

    size

    integer

    否

    返回结果数,默认值为10,取值范围为1~1000。

    min_score

    number

    否

    最低相关性分数,低于该阈值的结果将被过滤。

    reranker

    boolean

    否

    是否启用reranker,默认值为false。

    检索模式说明:

    模式

    说明

    适用场景

    knn

    纯向量检索。

    语义匹配、跨语言表达。

    rrf

    排名融合。

    通用检索,排序更稳健。

    balanced

    BM25与向量检索均衡。

    默认推荐。

    precise

    更偏关键词匹配。

    专有名词、编号、精确短语。

    semantic

    更偏语义理解。

    自然语言问题、同义表达。

  • 响应为标准OpenSearch search响应。默认返回的_source字段说明:

    字段

    说明

    text

    分块(chunk)正文。

    doc_id

    文档ID。

    kb_id

    知识库ID。

    filename

    原始文件名。

    chunk_index

    chunk在文档内的序号。

    page_numbers

    chunk覆盖的页码。

    headings

    chunk所属的标题链。

    captions

    图表标题。

    doc_items

    原文的结构化定位信息。

    metadata

    上传文档时传入的文档级元数据。

    chunk_metadata

    分块服务产生的chunk元数据。

  • 响应示例:

    {
      "took": 45,
      "hits": {
        "total": {
          "value": 3,
          "relation": "gte"
        },
        "max_score": 0.85,
        "hits": [
          {
            "_index": "polar_rag_space_pks-xxx",
            "_id": "Sp1CM1N47cn3IQV5jVRWXA",
            "_score": 0.85,
            "_source": {
              "text": "OpenSearch 是一个开源的分布式搜索和分析引擎...",
              "doc_id": "doc_001",
              "kb_id": "pkb-xxx",
              "filename": "opensearch_intro.txt",
              "chunk_index": 0,
              "page_numbers": [1, 2],
              "headings": ["概述"],
              "captions": [],
              "doc_items": ["#/texts/2", "#/texts/3"],
              "metadata": {
                "category": "技术文档"
              },
              "chunk_metadata": {
                "origin": {
                  "binary_hash": 123456789
                }
              }
            }
          }
        ]
      }
    }
  • curl示例:

    curl -u '<username>:<password>' -X POST \
      'http://<opensearch-host>:<port>/_plugins/_polar_rag/spaces/pks-xxx/search?pretty' \
      -H 'Content-Type: application/json' \
      -d '{
        "query_text": "OpenSearch 的向量搜索功能",
        "search_mode": "balanced",
        "kb_id": "pkb-xxx",
        "size": 10
      }'
    说明
    • reranker=true需要目标知识空间已配置reranker能力,否则接口返回400。

    • 搜索接口返回chunk级结果。上层应用可以基于text、filename、page_numbers、headings和doc_items等字段展示引用来源。