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

本文涉及的产品
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
OpenSearch LLM智能问答版免费试用套餐,存储1GB首月+计算资源100CU
推荐全链路深度定制开发平台,高级版 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月前
|
自然语言处理 大数据 应用服务中间件
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
70 5
|
2月前
|
存储 数据采集 监控
大数据技术:开启智能决策与创新服务的新纪元
【10月更文挑战第5天】大数据技术:开启智能决策与创新服务的新纪元
|
4月前
|
DataWorks Kubernetes 大数据
飞天大数据平台产品问题之DataWorks提供的商业化服务如何解决
飞天大数据平台产品问题之DataWorks提供的商业化服务如何解决
|
2月前
|
消息中间件 监控 Ubuntu
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
95 3
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
|
2月前
|
存储 分布式计算 druid
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
67 3
|
3月前
|
数据采集 分布式计算 MaxCompute
MaxCompute 分布式计算框架 MaxFrame 服务正式商业化公告
MaxCompute 分布式计算框架 MaxFrame 服务于北京时间2024年09月27日正式商业化!
100 3
|
4月前
|
机器学习/深度学习 分布式计算 BI
MaxCompute 与阿里云其他服务的协同工作
【8月更文第31天】在当今的数据驱动时代,企业需要处理和分析海量数据以获得有价值的洞察。阿里云提供了一系列的服务来满足不同层次的需求,从数据存储到高级分析。MaxCompute(原名 ODPS)作为阿里云的大规模数据处理平台,提供了强大的计算能力和丰富的功能,可以与阿里云的其他服务无缝集成,形成完整的大数据解决方案。本文将探讨 MaxCompute 如何与其他阿里云服务协同工作,包括存储服务 OSS、数据分析服务 Quick BI 以及机器学习平台 PAI。
59 1
|
4月前
|
监控 数据可视化 前端开发
【前端】政务服务大数据可视化监控平台(源码+html+css+js)
【前端】政务服务大数据可视化监控平台(源码+html+css+js)
|
5月前
|
存储 SQL 机器学习/深度学习
阿里云数加大数据计算服务MaxCompute学习路线图:从入门到精通
将所学知识应用于实际工作中并不断进行实践和创新是提升技术能力的关键所在。用户可以结合业务需求和技术发展趋势积极探索新的应用场景和解决方案,并在实践中不断总结经验和教训以提升自己的技术水平和实践能力。
|
5月前
|
分布式计算 大数据 BI
MaxCompute产品使用合集之如何确定是否需要更改MC的Endpoint服务接入架构
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。

相关产品

  • 智能开放搜索 OpenSearch