[开源]使用MyBatisPlus的只增强方式 优雅的操作向量数据库 Milvus

开源系统分类系统
2026-06-28 09:00 3 次浏览 • 0 次下载 0KB
[开源]使用MyBatisPlus的只增强方式 优雅的操作向量数据库 Milvus

一、开源项目简介

Dromara MilvusPlus:向量数据库增强操作库

MilvusPlus(简称 MP)是一个 Milvus 的操作工具,旨在简化与 Milvus 向量数据库的交互,为开发者提供类似 MyBatis-Plus 注解和方法调用风格的直观 API,提高效率而生。

二、开源协议

使用Apache-2.0开源协议

三、界面展示

图片

四、功能概述

特性

  • 无侵入
    :只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
  • 损耗小
    :启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
  • 强大的 CRUD 操作
    :通用 MilvusMapper,仅仅通过少量配置即可实现 CRUD 操作,更有强大的条件构造器,满足各类使用需求
  • 直观的 API
    :直接的 API 设计简化数据库操作,MilvusService 提供丰富的API。
  • 支持 Lambda 形式调用
    :通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错
  • 支持主键自动生成
    :完美解决主键问题
  • 支持自定义全局通用操作
    :支持全局通用方法注入
  • 注解式配置
    :采用与 MyBatis-Plus 类似的注解方式配置实体模型。
  • 易于扩展
    :核心设计注重可扩展性。
  • 类型安全
    :利用 Java 类型安全减少错误。

应用场景

  • 相似性搜索
    :快速检索与给定向量最相似的项。
  • 推荐系统
    :根据用户行为和偏好推荐相关内容。
  • 图像检索
    :在大规模图像库中找到与查询图像最相似的图像。
  • 自然语言处理
    :将文本转换为向量并执行语义搜索。
  • 生物信息学
    :分析和比较生物序列,如蛋白质和基因组数据。

自定义注解详解

使用自定义注解自动化Milvus数据库集成,提供了以下显著优势:

  • 简化开发流程
    :通过注解直接在代码中声明数据库结构,不用手动创建集合、属性、索引、分区,项目启动即自动构建,减少手动编写Milvus API调用的需要。
  • 提高开发效率
    :注解驱动的方式使得数据库结构的创建和管理更加快捷,加快开发速度。
  • 增强代码可读性
    :将数据库结构定义与业务逻辑代码紧密结合,提高代码的可读性和可维护性。
  • 减少错误
    :自动化创建数据库结构减少了人为错误的可能性,提高了系统的稳定性。
  • 易于维护
    :注解的使用使得数据库结构的变更更加集中和明确,便于后期维护和升级。

五、技术选型

使用MyBatisPlus的方式,优雅的操作向量数据库 Milvus,同时支持spring和solon。

快速开始

自定义扩展支持:

<dependency>
    <groupId>org.dromara.milvus-plus</groupId>
    <artifactId>milvus-plus-core</artifactId>
    <version>2.2.4</version>
</dependency>

Spring应用支持:

<dependency>
    <groupId>org.dromara.milvus-plus</groupId>
    <artifactId>milvus-plus-boot-starter</artifactId>
    <version>2.2.4</version>
</dependency>

Solon应用支持:

<dependency>
    <groupId>org.dromara.milvus-plus</groupId>
    <artifactId>milvus-plus-solon-plugin</artifactId>
    <version>2.2.4</version>
</dependency>

需知

  • 2.2.0版本支持数据库版本2.5.x,增强文本搜索能力
  • 2.1.7版本之后groupId修改为 org.dromara.milvus-plus,版本之前为 org.dromara
  • 2.0.0版本必须使用索引注解定义索引,不然启动报错后,再添加无效,需要先删除集合
  • 2.0.0版本暂未发布 MilvusService 功能

配置文件

milvus:
  uri:https://in03-a5357975ab80da7.api.gcp-us-west1.zillizcloud.com
token:x'x'x'x
enable:true
open-log:true(默认false不打印)
db-name:(可选)
username:(可选)
password:(可选)
packages:
    -com.example.entity
  • milvus:定义了与Milvus服务相关的配置。
  • uri:Milvus服务的URI,应用程序通过这个URI与Milvus服务进行通信。
  • token:用于验证和授权的令牌(Token),确保访问Milvus服务的安全性。
  • enable:一个布尔值,用于指示Milvus模块是否应该被启用。
  • packages:这些包包含了自定义注解对应的Java类,你可以认为这是你自定义的实体类所在的包。