基于OpenSearch向量检索版和MaxCompute快速搭建图搜服务

本文涉及的产品
推荐全链路深度定制开发平台,高级版 1个月
简介: 本文将介绍企业在没有向量数据的情况下,如何通过OpenSearch向量检索版、MaxCompute以及OSS,快速搭建图像搜索服务。

本文将介绍企业在没有向量数据的情况下,如何通过OpenSearch向量检索版、MaxCompute以及OSS,快速搭建图像搜索服务。

用户可以直接导入图片源数据,在OpenSearch内部便捷完成图片向量化、向量搜索等步骤,实现以图搜图、以文搜图等多种图像检索能力。


1. 方案架构

用户可以通过3种不同的方式上传图片进行图搜引擎的搭建

  • OSS+MaxCompute+OpenSearch向量检索版:用户先将图片上传至OSS中,在MaxCompute中存储业务表数据以及每条数据对应的图片地址(OSS里的路径,比如/image/1.jpg)
  • MaxCompute+OpenSearch向量检索版:用户将图片通过base64编码后的图片及其表数据存储在MaxCompute中
  • API+OpenSearch向量检索版:用户通过OpenSearch向量检索版给出的数据推送接口,将base64编码后的图片及其表数据推送到OpenSearch向量检索版实例中

本文演示的是OSS+MaxCompute+OpenSearch向量检索版搭建图搜引擎。


2. 环境准备

2.1 创建AK和SK

第一次开通阿里云账号并登录控制台时,会提示先创建access key才能继续使用。

  • 创建及使用应用依赖access key参数,主账号下access key参数不能为空。
  • 在为主账号创建access key参数后,还可以再创建RAM子账号access key通过RAM子账号进行访问,RAM子账号赋予对应访问权限,请参考RAM(子账号)的创建及授权

2.2 创建对象存储OSS

  1. 开通OSS服务
  2. 控制台创建存储空间
  3. 控制台上传文件

本文在OSS中上传了1000张图片:

部分图片类型如下:


3. 购买OpenSearch向量检索版实例

购买实例可参考购买OpenSearch向量检索版实例


4. 配置实例

新购买的实例,其状态为“待配置”,之后需要为该实例配置一张表,之后才可正常搜索。

4.1 填写表基础信息,点击下一步

配置说明:

  • 表名称:可自定义
  • 数据分片数:分片数设置时,各索引表分片数需保持一致;或至少一个索引表分片数为1,其余索引表分片数一致
  • 数据更新资源数:数据更新所用资源数,每个索引默认免费提供2个4核8G的更新资源,超出免费额度的资源将产生费用,详情可参考数据更新费用
  • 场景模板:选择“向量:图片搜索”
  • 数据处理:选择“需将原始数据转为向量数据”

4.2 数据同步,配置数据源,校验通过后,点击下一步

配置参数说明

  • 数据源类型:选择MaxCompute
  • Project:访问的目标MaxCompute项目名称
  • accesskeyId:阿里云账号或RAM用户的AccessKey ID
  • accesskeySecret:AccessKey ID对应的AccessKey Secret
  • Table:访问的目标MaxCompute表名
  • 分组键partition:MaxCompute数据源必须设置分区键; 示例:ds=20170626
  • 时间戳:如果有API的增量数据,该配置表示回追多久的增量数据,系统默认最大能回追3天的API增量数据
  • 自动索引重建:是否开启自动索引重建任务,如果开启,则将在识别到当前数据源的变更时,自动对引用该数据源的索引表进行索引重建;

说明

开启自动索引重建,则必须创建done表,创建方式可参考自动索引重建

3、字段配置,配置完成后,点击下一步:

此处需要选择主键、向量字段、需embedding字段。


4.3 图片存储于OSS

模板选择“向量:图片搜索”模板后,系统默认生成4个预置字段id(主键)、cate_id(类目字段)、vector(向量字段)、vector_source_image(存储图片路径的字段),用户选择MaxCompute数据源后,从数据源同步的字段,展示在预置字段下方。


4.3.1.配置“vector_source_image”字段

字段类型需要为STRING,必须勾选为需embedding字段

用户可根据业务表字段对预置字段名称进行修改,但需要保证该字段的高级配置无误:

在弹框中填写相应信息:

  • 数据类型:选择image(path)
  • 内容来源类型:oss
  • OSS存储空间:OSS的Bucket名称
  • oss_secret:可以访问OSS的账号AK
  • oss_accesskey:可以访问OSS的账号SK

重要

假设某张图片在OSS的路径为“/测试图片/湖泊.jpg”,那么该字段的内容也必须是“/测试图片/湖泊.jpg”,以下图举例:

OSS的路径:

MaxCompute字段值:

4.3.2.配置vector向量字段

字段类型需要为FLOAT,必须勾选为向量字段。


4.4 base64编码的图片

模板选择“向量:图片搜索”模板后,系统默认生成4个预置字段id(主键)、cate_id(类目字段)、vector(向量字段)、vector_source_image(存储图片路径的字段),用户选择MaxCompute数据源后,从数据源同步的字段,展示在预置字段下方。


4.4.1 配置“vector_source_image”字段

字段类型需要为STRING,必须勾选为需embedding字段

用户可根据业务表字段对预置字段名称进行修改,但需要保证该字段的高级配置无误:

在弹框中填写相应信息:

  • 数据类型:选择image(base64编码)

4.4.2 勾选vector向量字段

字段类型需要为FLOAT,必须勾选为向量字段

4.4.3 索引结构配置,配置完成后点击下一步

配置说明

  • 向量索引名称与向量字段名称相同
  • 包含字段为主键、向量字段、标签字段可选
  • 高级配置按需填写

说明

通过引擎将图片生成的向量,默认为512维,并且不支持修改。

4.4.4 配置完成后,点击确认创建

6、可在变更历史中查看表的创建进度:

全量完成后,即可搜索测试。


5. 查询测试

查询示例:可参考预测查询

结果展示

{
    "totalCount": 5,
    "result": [
        {
            "id": 5,
            "score": 1.103209137916565
        },
        {
            "id": 3,
            "score": 1.1278988122940064
        },
        {
            "id": 2,
            "score": 1.1326735019683838
        }
    ],
    "totalTime": 242.615
}

result 中 记录着返回的结果。


6. 语法说明


7. SDK中使用向量检索

相关文章
|
2月前
|
存储 数据可视化 数据管理
基于阿里云服务的数据平台架构实践
本文主要介绍基于阿里云大数据组件服务,对企业进行大数据平台建设的架构实践。
719 2
|
4月前
|
SQL 存储 大数据
某互联网大厂亿级大数据服务平台的建设和实践
某互联网大厂亿级大数据服务平台的建设和实践
68 0
|
26天前
|
分布式计算 运维 数据挖掘
MaxCompute是一个强大的云数据仓库服务
【4月更文挑战第1天】MaxCompute是一个强大的云数据仓库服务
25 1
|
1月前
|
数据采集 SQL 自然语言处理
阿里云OpenSearch RAG混合检索Embedding模型荣获C-MTEB榜单第一
阿里云OpenSearch引擎通过Dense和Sparse混合检索技术,在中文Embedding模型C-MTEB榜单上拿到第一名,超越Baichuan和众多开源模型,尤其在Retrieval任务上大幅提升。
432 3
|
3月前
|
分布式计算 搜索推荐 MaxCompute
基于OpenSearch向量检索版的多主体识别最佳实践
本文将介绍如何通过OpenSearch向量检索版,在图像搜索服务中进行多主体识别。
135990 9
|
3月前
|
自然语言处理 分布式计算 算法
通过OpenSearch向量检索版进行混合检索的最佳实践
本文介绍如何通过OpenSearch向量检索版,使用稀疏-稠密向量进行混合检索,获得更好的搜索效果。
1171 0
|
3月前
|
数据可视化 大数据 数据挖掘
瓴羊荣获2023虎啸奖“年度十大AI&大数据服务公司”“数智营销案例铜奖”双重大奖
瓴羊荣获2023虎啸奖“年度十大AI&大数据服务公司”“数智营销案例铜奖”双重大奖
|
4月前
|
SQL 存储 大数据
从0到1介绍一下开源大数据服务平台dataService
从0到1介绍一下开源大数据服务平台dataService
116 1
|
4月前
|
Prometheus 数据可视化 Cloud Native
助力工业物联网,工业大数据之服务域:可视化工具Grafana介绍【三十八】
助力工业物联网,工业大数据之服务域:可视化工具Grafana介绍【三十八】
104 1
|
4月前
|
存储 SQL Oracle
助力工业物联网,工业大数据之服务域:项目总结【三十九】
助力工业物联网,工业大数据之服务域:项目总结【三十九】
43 1

相关产品

  • 智能开放搜索 OpenSearch