VectoRex 技术文档:纯Java高性能向量数据库使用指南

【免费下载链接】VectoRex VectoRex 是一个 纯 Java 实现 的高性能、可扩展的向量数据库,专为现代 AI 和大数据应用设计。它结合了高效的向量索引(HNSW)和强大的标量索引(倒排索引、范围索引),支持复杂的混合查询(向量 + 标量),适用于推荐系统、图像搜索、自然语言处理等场景。 【免费下载链接】VectoRex 项目地址: https://gitcode.com/javpower/VectoRex

1. 安装指南

1.1 环境要求

  • Java 8及以上版本
  • Maven 3.6+(Java项目)
  • Docker(如需容器化部署)

1.2 安装方式

1.2.1 Spring Boot项目集成

在pom.xml中添加依赖:

<dependency>
    <groupId>io.github.javpower</groupId>
    <artifactId>vectorex-starter</artifactId>
    <version>1.5.3</version>
</dependency>
1.2.2 Solon项目集成

在pom.xml中添加依赖:

<dependency>
    <groupId>io.github.javpower</groupId>
    <artifactId>vectorex-solon-plugin</artifactId>
    <version>1.5.3</version>
</dependency>
1.2.3 独立服务部署

使用Docker快速部署:

docker run -d -p 8080:8382 --name vectorrex-server javpower/vectorex-server:v1.0.0
1.2.4 Java客户端SDK
<dependency>
    <groupId>io.github.javpower</groupId>
    <artifactId>vectorrex-client</artifactId>
    <version>1.5.3</version>
</dependency>
1.2.5 Go客户端SDK
go get gitee.com/javpower/VectoRex/vectorex-client-go

2. 项目使用说明

2.1 核心概念

  • 集合(Collection):存储向量数据的基本单元
  • 向量(Vector):高维数值数组,代表特征数据
  • 标量(Scalar):传统结构化数据字段
  • 混合查询:同时支持向量相似度搜索和标量过滤

2.2 基本操作流程

  1. 创建集合(定义向量维度和索引类型)
  2. 插入数据(向量+标量)
  3. 构建索引
  4. 执行查询
  5. 获取结果

2.3 示例代码(Java)

// 初始化客户端
VectoRexClient client = new VectoRexClient("http://localhost:8080");

// 创建集合
CollectionSchema schema = new CollectionSchema()
    .setName("products")
    .setDimension(128)
    .addScalarField("category", DataType.STRING)
    .addScalarField("price", DataType.FLOAT);
client.createCollection(schema);

// 插入数据
List<Float> vector = Arrays.asList(0.1f, 0.2f, ..., 0.128f);
Map<String, Object> fields = new HashMap<>();
fields.put("category", "electronics");
fields.put("price", 299.99f);
client.insert("products", vector, fields);

// 执行查询
Query query = new Query()
    .setTopK(10)
    .setVector(queryVector)
    .addFilter("category", "==", "electronics");
List<SearchResult> results = client.search("products", query);

3. 项目API使用文档

3.1 集合管理API

  • createCollection(CollectionSchema schema):创建新集合
  • dropCollection(String name):删除集合
  • listCollections():获取所有集合列表
  • collectionInfo(String name):获取集合详情

3.2 数据操作API

  • insert(String collection, List<Float> vector, Map<String, Object> fields):插入单条数据
  • batchInsert(String collection, List<VectorRecord> records):批量插入数据
  • delete(String collection, String id):删除指定ID的数据
  • update(String collection, String id, Map<String, Object> fields):更新标量字段

3.3 查询API

  • search(String collection, Query query):执行向量相似度搜索
  • getById(String collection, String id):根据ID获取数据
  • scrollQuery(String collection, int limit):滚动查询数据

3.4 索引管理API

  • createIndex(String collection, IndexParams params):创建索引
  • dropIndex(String collection):删除索引
  • indexStatus(String collection):获取索引状态

4. 项目安装方式详解

4.1 本地开发模式

  1. 克隆项目仓库:
    git clone https://gitee.com/javpower/vectorex.git
    
  2. 构建项目:
    mvn clean install
    
  3. 运行测试用例验证安装

4.2 生产环境部署

4.2.1 单机模式
java -jar vectorex-server-1.5.3.jar
4.2.2 集群模式
  1. 修改配置文件application-cluster.yml
  2. 启动多个实例:
    java -jar vectorex-server-1.5.3.jar --spring.profiles.active=cluster
    
4.2.3 Kubernetes部署
apiVersion: apps/v1
kind: Deployment
metadata:
  name: vectorex
spec:
  replicas: 3
  selector:
    matchLabels:
      app: vectorex
  template:
    metadata:
      labels:
        app: vectorex
    spec:
      containers:
      - name: vectorex
        image: javpower/vectorex-server:v1.0.0
        ports:
        - containerPort: 8382

4.3 客户端配置

@Configuration
public class VectoRexConfig {
    @Bean
    public VectoRexClient vectoRexClient() {
        return new VectoRexClient("http://vectorex-service:8382");
    }
}

【免费下载链接】VectoRex VectoRex 是一个 纯 Java 实现 的高性能、可扩展的向量数据库,专为现代 AI 和大数据应用设计。它结合了高效的向量索引(HNSW)和强大的标量索引(倒排索引、范围索引),支持复杂的混合查询(向量 + 标量),适用于推荐系统、图像搜索、自然语言处理等场景。 【免费下载链接】VectoRex 项目地址: https://gitcode.com/javpower/VectoRex

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐