SpringBoot集成Milvus2.3.4(2) |(实现向量的增删改查)
章节
第一章链接: SpringBoot集成Milvus|(实现向量的存储和查询)
前言
Milvus向量数据库简介:Milvus是一个开源的、可扩展的、高性能的向量数据库,采用分布式架构,支持海量向量数据的存储、检索和管理。它主要应用于计算机视觉、自然语言处理、推荐系统等人工智能领域,可以实现相似度检索、聚类分析、降维等功能。Milvus具有以下特点:
- 高性能:采用分布式架构和高效的索引算法,实现高速的向量检索和计算。
- 可扩展: 支持动态扩容和负载均衡,满足不断增长的数据存储和处理需求。
- 易用性: 提供Python、Java、C++等多种语言的SDK,方便用户快速接入和开发应用。
- 开源: 基于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