VectoRex 技术文档:纯Java高性能向量数据库使用指南
1. 安装指南
1.1 环境要求
- Java 8及以上版本
- Maven 3.0+(如需源码编译)
- Docker(如需容器化部署)
1.2 安装方式
方式一:Maven依赖集成
Spring Boot项目添加以下依赖:
<dependency>
<groupId>io.github.javpower</groupId>
<artifactId>vectorex-starter</artifactId>
<version>1.5.3</version>
</dependency>
Solon框架项目添加:
<dependency>
<groupId>io.github.javpower</groupId>
<artifactId>vectorex-solon-plugin</artifactId>
<version>1.5.3</version>
</dependency>
方式二:Docker部署独立服务
docker run -d -p 8080:8382 --name vectorrex-server javpower/vectorex-server:v1.0.0
方式三:客户端SDK集成
Java客户端:
<dependency>
<groupId>io.github.javpower</groupId>
<artifactId>vectorrex-client</artifactId>
<version>1.5.3</version>
</dependency>
Go客户端:
go get gitee.com/javpower/VectoRex/vectorex-client-go
2. 使用说明
2.1 核心概念
- 集合(Collection):存储向量数据的逻辑单元
- 向量(Vector):高维数值数组,支持浮点/二进制类型
- 标量字段(Scalar Field):结构化数据字段(如ID、标签等)
2.2 快速入门
// 初始化客户端(以Java为例)
VectoRexClient client = new VectoRexClient("http://localhost:8080");
// 创建集合
CollectionSchema schema = new CollectionSchema()
.addVectorField("feature", 128, DataType.FLOAT)
.addScalarField("id", DataType.INT64);
client.createCollection("products", schema);
// 插入数据
List<Float> vector = Arrays.asList(0.1f, 0.2f, ..., 0.128f);
Map<String, Object> scalarData = Map.of("id", 1001);
client.insert("products", vector, scalarData);
// 相似度搜索
SearchResult result = client.search("products", queryVector, 10);
3. API使用文档
3.1 集合管理API
| 方法 | 参数 | 说明 |
|---|---|---|
| createCollection | (String name, CollectionSchema schema) | 创建新集合 |
| dropCollection | (String name) | 删除集合 |
| listCollections | () | 获取所有集合列表 |
3.2 数据操作API
| 方法 | 参数 | 说明 |
|---|---|---|
| insert | (String collection, List vector, Map<String,Object> scalarData) | 插入单条数据 |
| batchInsert | (String collection, List records) | 批量插入数据 |
| search | (String collection, List queryVector, int topK) | 相似度搜索 |
3.3 高级查询API
// 混合查询示例
HybridQuery query = new HybridQuery()
.withVector(queryVector)
.withFilter("category == 'electronics' && price < 1000")
.setTopK(5);
client.hybridSearch("products", query);
4. 进阶配置
4.1 索引配置
// 创建时指定索引参数
IndexParams params = new HNSWParams()
.setM(16)
.setEfConstruction(200);
client.createCollection("images", schema, params);
4.2 持久化配置
通过配置文件设置存储路径:
# application.properties
vectorex.storage.path=/data/vectorex
vectorex.storage.auto-flush-interval=60s
4.3 性能调优建议
- 根据数据规模调整HNSW的M参数(16-64)
- 批量插入时建议每批1000-5000条
- 查询时合理设置efSearch参数平衡精度与速度
本技术文档提供了VectoRex的核心使用指南,如需更详细参数说明或特殊场景配置,请参考项目完整文档。该数据库特别适用于需要低延迟、高吞吐量的向量检索场景,开发者可根据实际需求选择嵌入式或独立服务部署模式。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



