赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 表格存储
  4. 操作指南
  5. 多元索引
  6. 向量检索
  7. 使用向量检索

使用向量检索

  • 向量检索
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

本文介绍如何通过控制台或SDK使用向量检索功能查询数据。

接口

向量检索的接口为Search,具体的Query类型为KnnVectorQuery。

参数

参数

是否必选

说明

fieldName

是

向量字段名称。

topK

是

查询最邻近的topK个值。关于最大值的说明请参见多元索引限制。

重要
  • K值越大,召回率越好,但是查询延迟和费用越高。

  • 当topK的值小于SearchQuery中limit的值时,服务端会自动把topK的值放大到limit的值。

float32QueryVector

是

要查询相似度的向量。

filter

否

查询过滤器,支持组合使用任意的非向量检索的查询条件。

使用方式

说明

如果使用向量检索功能时遇到问题,请提交工单或者加入钉钉群36165029092(表格存储技术交流群-3)联系我们。

您可以使用控制台或者SDK进行向量检索。进行向量检索之前,您需要完成如下准备工作。

  • 已创建RAM用户并为RAM用户授权表格存储操作权限。具体操作,请参见使用RAM用户访问密钥访问Tablestore。

  • 已创建数据表。具体操作,请参见数据表操作。

  • 创建多元索引时已配置向量字段。具体操作,请参见创建多元索引。

    说明

    如果已创建多元索引,您可以通过动态修改Schema修改多元索引的Schema。具体操作,请参见动态修改schema。

使用控制台

  1. 进入索引管理页签。

    1. 登录表格存储控制台。

    2. 在页面上方,选择资源组和地域。

    3. 在概览页面,单击实例名称或在操作列单击实例管理。

    4. 在实例详情页签下的数据表列表页签,单击数据表名称或在操作列单击索引管理。

  2. 在索引管理页签,单击目标多元索引操作列的搜索。

  3. 在查询数据对话框,查询数据。

    1. 系统默认返回所有列,如需显示指定属性列,关闭获取所有列并输入需要返回的属性列,多个属性列之间用半角逗号(,)隔开。

      说明

      系统默认会返回数据表的主键列。

    2. 根据需要选择逻辑操作符为 And、Or 或者 Not。

      当选择逻辑操作符为 And 时,返回满足指定条件的数据。当选择逻辑操作符为 Or 时,如果配置了单个条件,则返回满足指定条件的数据;如果配置了多个条件,则返回满足任意一个条件的数据。当选择逻辑操作符为 Not 时,返回不满足指定条件的数据。

    3. 选择向量字段,单击添加。

    4. 设置向量字段的查询类型为向量检索(KnnVectorQuery)以及输入要查询的向量和topK值。

      请按照界面提示输入符合格式的向量。

    5. 系统默认关闭排序功能,如需根据指定字段对返回结果进行排序,打开是否排序开关后,根据需要添加要进行排序的字段并配置排序方式。

    6. 系统默认关闭统计功能,如需对指定字段进行数据统计,打开是否统计开关后,根据需要添加要进行统计的字段和配置统计信息。

  4. 单击确定。

    符合查询条件的数据会显示在索引管理页签中。

使用SDK

重要

表格存储Java SDK从5.17.0版本开始支持向量检索,Go SDK请使用最新SDK版本,Python SDK从5.4.4版本开始支持向量检索,Node.js SDK从5.5.0版本开始支持向量检索。

您可以通过Java SDK、Go SDK、Python SDK或Node.js SDK使用向量检索功能。此处以Java SDK为例介绍使用向量检索的操作。

重要

使用Java SDK进行向量检索前,您需要初始化Client。具体操作,请参见初始化Client。

以下示例用于查询表中与指定向量最邻近的10个向量数据,并且最邻近的向量需要满足Col_Keyword列值等于"hangzhou"且Col_Long列值小于4的条件。

private static void knnVectorQuery(SyncClient client) {
    SearchQuery searchQuery = new SearchQuery();
    KnnVectorQuery query = new KnnVectorQuery();
    query.setFieldName("Col_Vector");
    query.setTopK(10); // 返回最邻近的topK。
    query.setFloat32QueryVector(new float[]{0.1f, 0.2f, 0.3f, 0.4f});
    // 最邻近的向量需要满足Col_Keyword=hangzhou && Col_Long<4条件。
    query.setFilter(QueryBuilders.bool()
            .must(QueryBuilders.term("Col_Keyword", "hangzhou"))
            .must(QueryBuilders.range("Col_Long").lessThan(4))
    );
    searchQuery.setQuery(query);
    searchQuery.setLimit(10);
    // 按照分数排序。
    searchQuery.setSort(new Sort(Collections.singletonList(new ScoreSort())));
    SearchRequest searchRequest = new SearchRequest("<TABLE_NAME>", "<SEARCH_INDEX_NAME>", searchQuery);
    SearchRequest.ColumnsToGet columnsToGet = new SearchRequest.ColumnsToGet();
    columnsToGet.setColumns(Arrays.asList("Col_Keyword", "Col_Long"));
    searchRequest.setColumnsToGet(columnsToGet);
    // 访问Search接口。
    SearchResponse resp = client.search(searchRequest);
    for (SearchHit hit : resp.getSearchHits()) {
        // 打印分数。
        System.out.println(hit.getScore());
        // 打印数据。
        System.out.println(hit.getRow());
    }
}

常见问题

如何优化表格存储的向量检索效果

相关文档

  • 多元索引查询类型包括精确查询、多词精确查询、全匹配查询、匹配查询、短语匹配查询、范围查询、前缀查询、后缀查询、通配符查询、基于分词的通配符查询、多条件组合查询、地理位置查询、嵌套类型查询、向量检索、和列存在性查询,您可以选择合适的查询类型进行多维度数据查询。

    如果要对结果集进行排序或者翻页,您可以使用排序和翻页功能来实现。具体操作,请参见排序和翻页。

    如果要按照某一列对结果集做折叠,使对应类型的数据在结果展示中只出现一次,您可以使用折叠(去重)功能来实现。具体操作,请参见折叠(去重)。

  • 如果要进行数据分析,例如求最值、求和、统计行数等,您可以使用 Search 接口的统计聚合功能或者 SQL 查询来实现。具体操作,请参见统计聚合和SQL查询。

  • 如果要快速导出数据,而不关心整个结果集的顺序时,您可以使用 ParallelScan 接口和 ComputeSplits 接口实现多并发导出数据。具体操作,请参见并发导出数据。

相关文章

使用向量检索 2025-04-22 14:42

本文介绍如何通过控制台或SDK使用向量检索功能查询数据。 接口 向量检索的接口为Search,具体的Query类型为KnnVectorQuery。 参数

使用云服务将 Tablestore 数据转成向量 2025-04-22 14:42

本文以文本数据为例介绍如何将存储在 Tablestore 中的数据通过阿里云大模型服务平台百炼生成向量并写入到表格存储的数据表中。 方案概览 阿里云的大模型服务平台百炼(以下简称“百炼”)是一站式的大模型开发及应用构建平台。百炼提供了多种向量模型,可以将文本、图像、语音等转换成向量。更多信息,请参见

使用开源模型将 Tablestore 数据转成向量 2025-04-22 14:42

本文介绍如何将存储在 Tablestore 中的文本数据通过开源模型生成向量。 方案概览 ModelScope(魔搭社区)旨在打造下一代开源的模型即服务共享平台,为泛 AI 开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单。ModelScope 魔搭社区汇集行业领先的预训练模型,减

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号