全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

管理向量索引

最近更新时间:2026-11-05 15:15:23

创建向量索引

/**
 * 创建向量索引
 *
 * <p>{@code dimension} 须与嵌入模型一致(1-4096),{@code dataType} 固定 {@code float32}。
 * {@code metadataConfiguration.nonFilterableMetadataKeys} 指定不参与过滤的元数据键。</p>
 */
public void createIndex() {
    Ks3VectorsClient client = initVectorsClient();
    String bucketName = "my-vector-bucket";
    String indexName = "my-index";
    try {
        MetadataConfiguration meta = new MetadataConfiguration();
        meta.setNonFilterableMetadataKeys(Arrays.asList("raw_text"));
        CreateIndexRequest indexReq = new CreateIndexRequest(bucketName, indexName, 1024, DistanceMetric.EUCLIDEAN);
        indexReq.setMetadataConfiguration(meta);
        CreateIndexResult result = client.createIndex(indexReq);
        System.out.println("索引创建成功: " + indexName);
        System.out.println("indexKrn: " + result.getIndexKrn());
    } catch (Ks3ServiceException e) {
        System.out.println("Ks3ServiceException: " + e.getErrorMessage()
                + ", status=" + e.getStatusCode() + ", requestId=" + e.getRequestId());
    } catch (Ks3ClientException e) {
        System.out.println("Ks3ClientException: " + e.getMessage());
    } finally {
        client.shutdown();
    }
}

获取向量索引

/**
 * 获取向量索引详细信息
 */
public void getIndex() {
    Ks3VectorsClient client = initVectorsClient();
    String bucketName = "my-vector-bucket";
    String indexName = "my-index";
    try {
        GetIndexResult result = client.getIndex(
                new GetIndexRequest(bucketName, indexName));
        VectorIndex index = result.getIndex();
        if (index != null) {
            System.out.println("索引名: " + index.getIndexName());
            System.out.println("indexKrn: " + index.getIndexKrn());
            System.out.println("维度: " + index.getDimension());
            System.out.println("距离度量: " + index.getDistanceMetric());
            System.out.println("数据类型: " + index.getDataType());
            System.out.println("创建时间(ms): " + index.getCreationTime());
        }
    } catch (Ks3ServiceException e) {
        if (e.getStatusCode() == 404) {
            System.out.println("索引不存在");
        } else {
            System.out.println("Ks3ServiceException: " + e.getErrorMessage()
                    + ", status=" + e.getStatusCode() + ", requestId=" + e.getRequestId());
        }
    } catch (Ks3ClientException e) {
        System.out.println("Ks3ClientException: " + e.getMessage());
    } finally {
        client.shutdown();
    }
}

列举向量索引

/**
 * 列举向量桶下所有索引(串行分页)
 */
public void listIndexes() {
    Ks3VectorsClient client = initVectorsClient();
    String bucketName = "my-vector-bucket";
    try {
        String nextToken = null;
        do {
            ListIndexesResult result = client.listIndexes(
                    new ListIndexesRequest(bucketName)
                            .withMaxResults(100)
                            .withNextToken(nextToken));
            List<VectorIndex> indexes = result.getIndexes();
            if (indexes != null) {
                for (VectorIndex idx : indexes) {
                    System.out.println("  " + idx.getIndexName()
                            + " (krn=" + idx.getIndexKrn() + ")");
                }
            }
            nextToken = result.getNextToken();
        } while (nextToken != null && !nextToken.isEmpty());
    } catch (Ks3ServiceException e) {
        System.out.println("Ks3ServiceException: " + e.getErrorMessage()
                + ", status=" + e.getStatusCode() + ", requestId=" + e.getRequestId());
    } catch (Ks3ClientException e) {
        System.out.println("Ks3ClientException: " + e.getMessage());
    } finally {
        client.shutdown();
    }
}

删除向量索引

/**
 * 删除向量索引
 *
 * <p>前置条件:索引下须无向量数据,删除前建议先确认。</p>
 */
public void deleteIndex() {
    Ks3VectorsClient client = initVectorsClient();
    String bucketName = "my-vector-bucket";
    String indexName = "my-index";
    try {
        Ks3Result result = client.deleteIndex(
                new DeleteIndexRequest(bucketName, indexName));
        System.out.println("索引删除成功: " + indexName + ", requestId=" + result.getRequestId());
    } catch (Ks3ServiceException e) {
        System.out.println("Ks3ServiceException: " + e.getErrorMessage()
                + ", status=" + e.getStatusCode() + ", requestId=" + e.getRequestId());
    } catch (Ks3ClientException e) {
        System.out.println("Ks3ClientException: " + e.getMessage());
    } finally {
        client.shutdown();
    }
}
文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈