objectbox/objectbox-java
Database for Android and JVM - first and fast, lightweight on-device vector database
ObjectBox Java – 带向量搜索功能的设备内 NoSQL 数据库
是什么
ObjectBox‑Java 是 Java 和 Kotlin 应用程序(Android、桌面、服务器)的 轻量级设备内数据库。它直接存储普通对象(POJO),因此你无需编写 SQL。该库还包含一个 向量搜索引擎,可让你将高维嵌入(embeddings)与常规数据一起保存,并快速执行相似性查询——适用于 RAG、生成式 AI 或推荐功能。
为何你会需要它
| 特性 | 对你的意义 |
|---|---|
| 首个设备内向量数据库 | 本地存储嵌入,并在无需远程服务的情况下运行相似性搜索。 |
| 高性能 | 基准测试表明 CRUD 操作比 SQLite 或 Realm 更快,CPU、内存和电池消耗低——对移动或边缘设备至关重要。 |
| 面向对象的 API | 定义一个 @Entity 类,获取一个 Box<T>,调用 put、get、remove。无需 SQL 字符串,编译时类型安全。 |
| 内置关系支持 | 一对多、多对多关系自动处理,简化复杂数据模型。 |
| 跨平台 | 支持 Android 和任意 JVM(Linux、macOS、Windows),并支持 ARM CPU。 |
| 同步与时间序列扩展(独立产品) | 可选附加功能,用于设备间数据同步或存储时间序列数据。 |
如何使用(快速示例)
@Entity
public class Person {
@Id long id; // 自动生成的主键
String firstName;
String lastName;
}
BoxStore store = MyObjectBox.builder()
.name("person-db")
.build();
Box<Person> box = store.boxFor(Person.class);
Person p = new Person();
long id = box.put(p); // 创建
Person loaded = box.get(id); // 读取
loaded.lastName = "Smith";
box.put(loaded); // 更新
box.remove(loaded); // 删除
Kotlin 使用方式类似,使用相同的注解即可。
如何引入项目
- Gradle – 添加
io.objectbox插件(或使用版本目录),从 Maven Central 获取 ObjectBox 依赖。 - Maven – 支持 JVM 项目;请参阅示例仓库中的 pom 文件。
- 需要 Java 8+(或 Kotlin 1.7+),可在 Android 5.0+ 和现代桌面操作系统上运行。
更多学习资源
- 文档与入门指南 – https://docs.objectbox.io
- 示例应用 – https://github.com/objectbox/objectbox-examples
- FAQ / 故障排除 – 从 README 中链接。
- 性能基准测试仓库 – 展示与 SQLite/Realm 的速度对比。
许可证
Apache 2.0(此仓库中的代码)。其他 ObjectBox 组件有各自的许可条款。
ObjectBox Java 是一个专注于本地数据存储和设备内向量搜索的真实软件项目,通过支持边缘侧嵌入相似性搜索,契合 AI/ML 前沿需求。
相关
- 项目
- 项目
- 项目
- 项目
- 项目