SpringBoot集成Milvus2.3.4(2) |(实现向量的增删改查)

SpringBoot集成Milvus2.3.4(2) |(实现向量的增删改查)


章节
第一章链接: SpringBoot集成Milvus|(实现向量的存储和查询)

前言

Milvus向量数据库简介:Milvus是一个开源的、可扩展的、高性能的向量数据库,采用分布式架构,支持海量向量数据的存储、检索和管理。它主要应用于计算机视觉、自然语言处理、推荐系统等人工智能领域,可以实现相似度检索、聚类分析、降维等功能。Milvus具有以下特点:

  1. 高性能:采用分布式架构和高效的索引算法,实现高速的向量检索和计算。
  2. 可扩展: 支持动态扩容和负载均衡,满足不断增长的数据存储和处理需求。
  3. 易用性: 提供Python、Java、C++等多种语言的SDK,方便用户快速接入和开发应用。
  4. 开源: 基于Apache 2.0协议,允许用户自由使用、修改和分发。

一、Milvus数据库的新增

1.新增数据

新增代码如下:

 public int insertPrepare(List<MilvusParamBo> milvusParamVoList, String collectionName, String partionName) {
   
        List<Long> id_array = new ArrayList<>();
        List<String> libId_array = new ArrayList<>();
        List<String> partId_array = new ArrayList<>();
        List<String> docId_array = new ArrayList<>();
        List<String> category_array = new ArrayList<>();
        List<String> user_array = new ArrayList<>();
        List<List<Integer>> version_array = new ArrayList<>();
        List<List<Float>> embedding_array = new ArrayList<>();
        for (MilvusParamBo vo : milvusParamVoList) {
   
            id_array.add(vo.getMilvusId());
            libId_array.add(vo.getLibId());
            partId_array.add(vo.getPartId());
            docId_array.add(vo.getDocId());
            category_array.add(vo.getCategory());
            user_array.add(vo.getUser());
            version_array.add(vo.getLibVersionList().stream().collect(Collectors.toList()));
            embedding_array.add(vo.getVector());
            log.debug(JSONObject.toJSONString(vo));
        }

        List<InsertParam.Field> fields = new ArrayList<>();
        // 这里的字段在创建集合的时候需要确定好
        fields.add(new InsertParam.Field(MilvusFileId.ID, id_array));
        fields.add(new InsertParam.Field(MilvusFileId.LIBID
  • 22
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
功能设计 ​ 系统功能模块较为简单,主要功能就是**新增人脸**和**人脸搜索**两个功能,其中新增人脸使用页面上传和压缩包批量上传两个方式,压缩包上传时文件名称为用户名,下面主要说明人脸搜索的功能流程 ##### Milvues ​ 在介绍前需要说明一下Mulvus ​ Milvus 向量数据库能够帮助用户轻松应对海量非结构化数据(图片 / 视频 / 语音 / 文本)检索。单节点 Milvus 可以在秒内完成十亿级的向量搜索 ​ 因此虹软的SDK只能提取向量及对比的功能,在大规模人脸识别中,需要搜索引擎对于人脸数据进行初步筛选到一个较小的范围后在利用虹软的SDK进行测试,值得一提的是,博主多次测试后Milvues返回的匹配率足以满足人脸匹配的要求,Milvus的安装部署和使用文档参考 https://milvus.io/cn/docs/v2.0.x ​ **特别说明的是**虹软提取的数组是一个经过归一后的1032长度的byte数组,我们需要对数组进行转换,去除前8位的版本号,并将1024长度的byte转为256长度的float向量,这部分可以利用Arrays提供的方法进行转换,代码中也有相应的工具类 ##### 人脸上传(单张) ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
Milvus 是一个开源的向量相似度搜索引擎,而Spring Boot 是一个用于构建基于 Java 的独立、生产级的应用程序的框架。 Milvus Spring Boot 是将 MilvusSpring Boot 框架结合使用的一种方式。借助 Spring Boot,我们可以更方便地构建基于 Milvus 的应用程序。 首先,我们可以使用 Spring Boot 的依赖管理功能,将 MilvusJava 客户端库添加到项目中。这样,我们就可以在我们的应用程序中直接使用 Milvus 的功能,如向量的插入、查询和删除等。 其次,Spring Boot 提供了强大的配置管理功能,我们可以轻松地将 Milvus 的连接配置信息添加到应用程序的配置文件中,例如指定 Milvus 的 IP 地址、端口号和连接池大小等。这样,我们就可以灵活地管理 Milvus 与其他组件的连接。 另外,Spring Boot 还提供了便捷的 RESTful API 开发功能。我们可以利用这一特性,将 Milvus 的搜索引擎功能以接口的形式暴露给客户端,使得客户端可以通过 HTTP 请求来进行向量的检索。这样,我们可以轻松地建立一个灵活、高性能的分布式向量搜索系统。 总的来说,Milvus Spring Boot 结合了 Milvus 的强大功能和 Spring Boot 的便捷开发特性,使得我们可以更快速、灵活地搭建起一个高性能的向量搜索应用程序。它在大数据、人工智能等领域有广泛的应用前景,可以应对各种复杂的向量查询需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值