# VectoRex
**Repository Path**: FreeIPCC/VectoRex
## Basic Information
- **Project Name**: VectoRex
- **Description**: VectoRex 是一个纯 Java 实现的高性能、可扩展的向量数据库,专为现代 AI 和大数据应用设计。它结合了高效的向量索引(HNSW)和强大的标量索引(倒排索引、范围索引),支持复杂的混合查询(向量 + 标量),适用于推荐系统、图像搜索、自然语言处理等场景。VectoRex 还实现了 BM25 检索功能,能够高效处理文本相关性搜索,特别适合中文分词和自然语言处理任务。
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: https://vectorex-doc.m78cloud.cn/
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 51
- **Created**: 2025-03-14
- **Last Updated**: 2025-09-10
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# **VectoRex**
**A High-Performance Vector Database Implemented in Pure Java**
## **Introduction**
**VectoRex** is a high-performance, scalable vector database designed for modern AI and big data applications. It offers lightweight, embeddable, and standalone deployment options, making it ideal for complex scenarios such as recommendation systems, image search, and natural language processing. VectoRex provides developers with a powerful and flexible search solution.
### **Core Advantages**
- **Lightweight**: No dependency on complex external libraries. Core functionalities are entirely implemented in Java, making it easy to integrate and deploy across platforms, truly embodying "write once, run anywhere."
- **Embeddable**: Provides starter and solon-plugin packages for quick integration into existing systems, seamlessly fitting into various application architectures.
- **Standalone Deployment**: Supports standalone deployment as a retrieval service with a complete functional system, offering RESTful API interfaces for easy client interaction, catering to diverse usage scenarios.
- **SDK**: Provides Java, Golang, and Python client SDKs for interacting with VectoRex services, offering developers a convenient integration experience.
---
## **Why Choose VectoRex?**
### **Technical Features**
- **High-Performance Search**: Based on the advanced HNSW algorithm, it supports fast search of large-scale vectors, providing users with an efficient Approximate Nearest Neighbor (ANN) search experience.
- **Hybrid Query**: Intelligently combines vector search with scalar filtering, supporting complex query scenarios such as finding images most similar to a given image with the tag "landscape" or documents most similar to a given text published within the last week.
- **Persistent Storage**: Built-in efficient data storage mechanisms ensure the safety and quick recovery of large-scale datasets, guaranteeing data integrity and reliability.
- **Flexible Index Management**: Covers scalar indexes (inverted index, range index) and vector indexes, supporting dynamic addition, deletion, and updating of vector data to meet diverse indexing needs.
### **Ease of Use**
- **vectorex-starter**: As a Spring Boot Starter, it provides auto-configuration and convenient APIs, helping developers easily integrate VectoRex functionalities into Spring Boot applications. To include VectoRex via Maven, simply add the following dependency:
```xml
io.github.javpower
vectorex-starter
1.5.3
```
- **vectorex-solon-plugin**: As a Solon plugin, it provides auto-configuration and convenient APIs, helping developers easily integrate VectoRex functionalities into Solon applications. To include VectoRex via Maven, simply add the following dependency:
```xml
io.github.javpower
vectorex-solon-plugin
1.5.3
```
- **vectorex-server**: As a standalone retrieval service, it offers complete functionalities such as creating collections, adding data, and querying data, providing flexible deployment options.
```sh
docker run -d -p 8080:8382 --name vectorrex-server javpower/vectorex-server:v1.0.0
```
- **vectorex-client**: As a Java client SDK, it provides rich interfaces for interacting with VectoRex services, including creating collections, adding data, and querying data, helping developers easily integrate VectoRex services into their applications. To include VectoRex client via Maven, simply add the following dependency:
```xml
io.github.javpower
vectorrex-client
1.5.3
```
- **vectorex-client-go**: As a Go client SDK, it provides rich interfaces for interacting with VectoRex services, including creating collections, adding data, and querying data. To include VectoRex client via Go Modules, simply run the following command:
```bash
go get gitee.com/javpower/VectoRex/vectorex-client-go
go get github.com/javpower/VectoRex/vectorex-client-go
```
---
## **Performance Benchmark**
- **To be added**
---
## **Application Scenarios**
- **Recommendation Systems**: Accurately locate content that highly matches user interests, improving recommendation effectiveness and user experience.
- **Image Search**: Perform similarity searches based on image features to quickly find images similar to the target image.
- **Natural Language Processing**: Enable semantic search and text similarity calculations, supporting the efficient operation of natural language processing applications.
- **Bioinformatics**: Apply to gene sequence alignment and protein structure search, providing strong support for bioinformatics research.
---
## **Friendly Links**
Here are some recommended resources or partners related to the project:
| Name | Description | Link |
|-----------------|-------------------------------------|------------------------------------------------|
| **VectoRex** | Official documentation for the VectoRex project, including detailed usage guides and API references. | [View Documentation](https://vectorex-doc.m78cloud.cn/) |
| **ImageRex** | An image search system based on VectoRex. | [View Documentation](https://gitee.com/giteeClass/ImageRex/) |
| **MilvusPlus** | An enhanced operations library for the Milvus vector database. | [View Documentation](https://milvus-plus.dromara.org/) |
| **Dante Cloud** | An enterprise-level multi-tenant microservice system with "one codebase, two architectures." | [View Documentation](https://www.herodotus.cn) |
| **Warm-Flow** | A domestic workflow engine🎉, lightweight and easy to integrate with a designer. | [View Documentation](https://warm-flow.dromara.org/) |
| **Skyeye Cloud** | An integrated software solution for OA, CRM, ERP, MES, PM, and administration in smart manufacturing. | [View Documentation](https://gitee.com/dromara/skyeye) |
---
## **License**
VectoRex is open-sourced under the **Apache License 2.0**. For more details, please refer to the [LICENSE](LICENSE) file.
---
## **Contact Us**
- **Email**: javpower@163.com
- **Gitee**:[https://gitee.com/javpower/vectorex](https://gitee.com/javpower/vectorex)
- **GitHub**: [https://github.com/javpower/vectorex](https://github.com/javpower/vectorex)
---