latticedb
jeffhajewski/latticedb加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:你在开发一个个人知识助手,需要管理论文、作者、概念之间的复杂关系——某篇论文由谁撰写、属于哪个研究方向、不同概念之间有什么关联。当你向助手提问"找找和 Transformer 架构相关的论文,以及它们的作者"时,传统方案需要拼接 PostgreSQL + pgvector + 全文搜索引擎三个系统。
LatticeDB 告诉你:不用这么复杂,一个文件就够了。
LatticeDB 的作者 jeffhajewski 在 Hacker News 上分享了他的动机:当他尝试为 AI 应用构建本地记忆系统时,发现自己需要同时维护图数据库(处理关系)、向量数据库(语义检索)和全文索引(关键词搜索)。这种"三合一"的需求让他开始思考——为什么没有一个本地数据库能同时搞定这三种查询?
于是他用 Zig 语言从零实现了这个数据库,定位非常明确:像 SQLite 一样简单,像 Neo4j 一样强大。
LatticeDB 的核心创新在于它的统一查询层,同时支持三种查询模式:
这是 LatticeDB 的灵魂。使用类似 Cypher 的查询语法,可以高效遍历多跳关系:
MATCH (chunk:Chunk)-[:PART_OF]->(doc:Document)-[:AUTHORED_BY]->(author:Person)
WHERE chunk.embedding <=> $query < 0.5
RETURN doc.title, chunk.text, author.name
ORDER BY chunk.embedding <=> $query LIMIT 5
这个查询同时用了向量相似度(<=> 操作符)和图遍历(-[:PART_OF]->)两种能力。在深度遍历(5跳以上)场景下,LatticeDB 的性能比 SQLite 的递归 CTE 快 2819 倍——实测 3.79 秒的 SQL 查询在 LatticeDB 中只需 500 微秒。
内置 HNSW(Hierarchical Navigable Small World)近似最近邻算法,官方声称在 100 万向量规模下实现 100% 召回率。支持内置哈希嵌入,也支持接入 Ollama 或 OpenAI 生成嵌入向量。
集成 BM25 排序算法(Elasticsearch 和 Lucene 背后的技术),支持多字段权重配置。
LatticeDB 选择 Zig 语言有几个深意:
@ptrCast 和显式内存布局非常适合数据库内部结构:
LatticeDB 提供了多语言绑定,Python 开发者一行 pip 就能用:
pip install latticedb
from latticedb import Database
with Database("knowledge.db") as db:
db.create_index("Person", "name")
alice = db.create_node("Person", {"name": "Alice"})
doc = db.create_node("Document", {"title": "Attention Is All You Need"})
db.create_edge(alice, "AUTHORED_BY", doc)
示例项目包括知识图谱可视化、多跳推理等场景。
LatticeDB 图结构示意
GraphRAG(基于知识图谱的检索增强生成)是 2024 年大模型应用的重要方向,而 LatticeDB 恰好踩中了这个趋势。它将图数据库的能力压缩到一个嵌入式单文件中,让:
当然,LatticeDB 也有它的边界:
LatticeDB 是一个很有想法的项目。它用 Zig 语言重新思考了"嵌入式数据库"这个品类——不追求功能大而全,而是专注于本地 AI 应用的图 + 向量 + 全文三合一场景。对于构建知识图谱、GraphRAG、推荐系统本地原型,它是一个非常值得尝试的工具。
如果你正在寻找一个轻量级的图数据库来为 AI 应用添加"记忆"能力,LatticeDB 值得关注。
LatticeDB 文档截图
LatticeDB 架构图