You need to enable JavaScript to run this app.
文档中心
向量数据库VikingDB

向量数据库VikingDB

复制全文
下载 pdf
文档(Doc)
update_doc_meta
复制全文
下载 pdf
update_doc_meta
概述

update_doc_meta 用于更新知识库中文档信息,文档 meta 信息更新会自动触发索引数据更新。

请求参数
参数子参数类型是否必选默认值参数说明
collectionName--String否--知识库名称

projectName

--

String

否

default

知识库所属项目,获取方式参见文档API 接入与技术支持
若需要操作指定项目下的知识库,需正确配置该字段。

resourceId

--

String

否

--

知识库唯一 ID
可通过创建知识库接口的返回值或知识库列表接口获取
可选择直接传 resourceId,或同时传 collectionName 和 projectName 作为知识库的唯一标识

docId

--

String

是

--

待更新文档的 ID
可通过文档上传结果或文档列表接口获取

metaList否--meta 信息
fieldNameString否--要更新的字段名

fieldType

String

否

--

要更新的字段类型

  • 仅当新增知识库未配置过的标签字段时生效,且新增字段不能用于标量过滤,仅可作为当前文档的描述信息存储
  • 支持 "int64","float32","string","bool","list" 类型,限制参考VikingDB的field_type规则和说明

fieldValue

Object

否

--

要更新的字段值
字段值需保证类型符合字段定义,如 "int64","float32","string" 等。

响应消息
字段类型参数说明
codeInteger状态码
messageString返回信息
requestIdString每个请求的唯一标识符
状态码说明
状态码http状态码返回信息状态码说明
0200success成功
1000001401unauthorized鉴权失败
1000002403no permission权限不足
1000003400invalid request: %s非法参数
1000005400collection not existcollection 不存在
1001001400doc not existdoc 不存在
请求示例

首次使用知识库 SDK,可参考 使用说明
本示例演示了知识库 Java SDK 中 UpdateDocMeta 的基础使用方法,通过指定文档 ID 和元数据信息(字段名、类型、值)修改文档元数据,使用前需配置 API Key 鉴权参数(VIKING_API_KEY)。

package com.volcengine.vikingdb.runtime.knowledge.examples.doc_update_meta;

import com.fasterxml.jackson.databind.ObjectWriter;
import com.volcengine.vikingdb.runtime.core.ApiClient;
import com.volcengine.vikingdb.runtime.core.RequestAddition;
import com.volcengine.vikingdb.runtime.core.auth.Auth;
import com.volcengine.vikingdb.runtime.core.auth.AuthWithApiKey;
import com.volcengine.vikingdb.runtime.enums.Scheme;
import com.volcengine.vikingdb.runtime.knowledge.model.CollectionMeta;
import com.volcengine.vikingdb.runtime.knowledge.model.request.MetaItem;
import com.volcengine.vikingdb.runtime.knowledge.model.response.BaseResponse;
import com.volcengine.vikingdb.runtime.knowledge.service.KnowledgeCollectionClient;
import com.volcengine.vikingdb.runtime.knowledge.service.KnowledgeService;

import java.util.ArrayList;
import java.util.List;

public class Main {
    private static final ObjectWriter PRETTY_JSON = ApiClient.objectMapper.writerWithDefaultPrettyPrinter();
    private static final Scheme SCHEME = Scheme.HTTPS;
    private static final String HOST = "api-knowledgebase.mlp.cn-beijing.volces.com";
    private static final String REGION = "cn-beijing";
    private static final String PROJECT = "default";
    private static final String COLLECTION_NAME = "<YOUR_COLLECTION_NAME>";
    private static final String COLLECTION_RESOURCE_ID = "";
    private static final String DOC_ID = "<YOUR_DOC_ID>";

    public static void main(String[] args) throws Exception {
        String apiKey = getEnv("VIKING_API_KEY");
        if (apiKey.isEmpty()) {
            System.out.println("missing_auth: set VIKING_API_KEY");
            return;
        }
        Auth auth = new AuthWithApiKey(apiKey);

        KnowledgeService service = newKnowledgeService(auth);
        KnowledgeCollectionClient kc = service.collection(defaultCollectionMeta());

        List<MetaItem> meta = new ArrayList<>();
        meta.add(MetaItem.builder().fieldName("category").fieldType("string")
                .fieldValue("your_category").build());
        meta.add(MetaItem.builder().fieldName("updated_at").fieldType("int64")
                .fieldValue(System.currentTimeMillis() / 1000).build());

        BaseResponse resp = kc.updateDocMeta(DOC_ID, meta, new RequestAddition());
        printJson("update_doc_meta", resp);
    }

    private static KnowledgeService newKnowledgeService(Auth auth) {
        return new KnowledgeService(SCHEME, HOST, REGION, auth);
    }

    private static CollectionMeta defaultCollectionMeta() {
        return CollectionMeta.builder()
                .collectionName(COLLECTION_NAME)
                .projectName(PROJECT)
                .resourceId(COLLECTION_RESOURCE_ID)
                .build();
    }

    private static String getEnv(String name) {
        String v = System.getenv(name);
        if (v == null) {
            return "";
        }
        v = v.trim();
        return v.isEmpty() ? "" : v;
    }

    private static void printJson(String name, Object obj) throws Exception {
        if (obj == null) {
            System.out.println(name + ": null");
            return;
        }
        System.out.println(name + ": " + PRETTY_JSON.writeValueAsString(obj));
    }
}
最近更新时间:2026.09.08 20:33:19
这个页面对您有帮助吗?
有用
有用
无用
无用