LatticeDB是一个嵌入式单文件知识图谱数据库,支持向量搜索和全文搜索,专为AI/RAG应用设计。它允许在同一查询层进行关系遍历、向量相似度搜索和BM25全文搜索,无需服务器配置,采用单写入模型,适合本地知识工具和代理记忆等场景。
正文
好的,这是根据您的要求,对原文进行的中文重述,保留了核心细节,并删减了与主题无关的安装命令、代码示例和性能对比表格等细节。
LatticeDB:一款嵌入式、单文件的属性图数据库
LatticeDB 是一款专为本地应用设计的嵌入式数据库,它将整个数据库存储在一个便携的单文件中,无需服务器或配置即可运行。其核心特点是能够在一个统一的查询层中,同时处理图关系遍历、向量相似性搜索(HNSW算法)和全文搜索(BM25算法),非常适合在单台机器上处理关系密集型的工作负载。
核心特性:
- 单文件存储:整个数据库就是一个文件,便于携带和管理。
- 统一查询:支持在同一查询语言中混合使用图遍历、向量搜索和全文搜索。
- 内置事件日志:提供持久化的命名流和内置的图变更日志,与图写入共享同一事务/预写日志(WAL)路径。
- 本地优先:专为单机单进程设计,通过WAL保证数据持久性。
- 高性能:节点查找速度可达0.13微秒,在100万向量规模下,向量搜索延迟为0.83毫秒,并能达到100%的召回率。
主要功能:
- 图功能:支持带标签和属性的节点与边、持久化属性索引、多跳遍历、ACID事务以及聚合操作。
- 向量搜索:使用可配置参数的HNSW近似最近邻搜索算法。
- 全文搜索:基于BM25评分的倒排索引,支持分词、词干提取和模糊搜索。
- 查询语言:支持Cypher查询语言的大部分核心功能,包括
MATCH、WHERE、RETURN、CREATE、DELETE等,并内置了向量距离运算符(<=>)和全文搜索运算符(@@)。 - 运维:支持连续备份、热备份、持久化命名流、在线空闲列表重用以及数据库压缩。
适用场景:
- 需要处理关系、语义和文本的本地数据应用,如笔记、文档、目录、引文图等。
- 构建本地知识工具、智能体记忆和RAG(检索增强生成)管道。
- 作为Neo4j或Weaviate等重量级数据库的轻量级替代方案,用于本地开发和原型设计。
不适用场景:
- 需要多个应用同时写入同一数据库的场景(LatticeDB采用单写入者模型)。
- 数据本质上是表格型的,关系数据库(如SQLite)可能更简单高效。
- 需要扩展到单机以外的场景(如分片、多节点副本)。
- 需要完整的Cypher语言支持(如
OPTIONAL MATCH)或成熟的生态系统和工具链。
技术实现与性能:
LatticeDB使用Zig语言编写,无外部依赖。其性能在多项基准测试中表现出色,例如,其B+树索引的缓存查找速度与RocksDB相当,比SQLite快23倍;其向量搜索速度与FAISS单线程HNSW相当,甚至快于一些服务器端系统;其图遍历速度远超SQLite,在深度遍历场景下优势尤为明显。
总结:
LatticeDB是一个强大且高效的嵌入式图数据库,它通过将图、向量和文本搜索能力整合到一个单文件引擎中,为构建本地优先的智能应用提供了一个简洁而高性能的解决方案。
评论
根据评论内容,总结如下:
主要观点与论据:
认可与赞赏(多数评论持正面态度):
- 评论2(ebbearlco):"Just read through the README on GitHub and this looks impressive! Kudos"
- 评论7(petervandijck):"Congrats this is really cool and love the examples"
- 评论10(k9294):"I'm a big fan of SQLite embedded nature... Really impressed with the product good luck with it!"
技术疑问与建议(关注设计细节):
- 评论1(vorpalhex):询问数据规模测试情况:"What are some of the scales of the data you've been able to test this design on so far?"
- 评论5(tescreal):关注AI贡献:"I see 'Claude' listed as a contributor. Could you describe how and how much?"
- 评论9(itissid):询问备份方案:"Does it have something like litestream to backit up for specific production usecases?"
- 评论12(vladigtr):关注并发写入:"How do you handle concurrent writers on a single file?"
功能对比与扩展(提及相关工具):
- 评论3(anentropic):推荐类似工具:"See also: https://ladybugdb.com/ 'DuckDB for graphs'"
- 评论4(srameshc):询问与DuckPGQ的对比:"just curious how useful is duckpgq"
- 评论8(nrjames):询问为何不基于Kuzu开发:"why did you not fork and build on Kuzu?"
应用场景与需求(用户实际用例):
- 评论6(tomComb):探讨RDF数据映射:"I wonder about mapping RDF data (like Wikidata) to this"
- 评论10(k9294):描述个人知识图谱需求,并询问权限模型:"how would you recommend modeling a hierarchical access system in a graph database?"
平衡性总结: 评论整体以正面反馈为主,认可其本地文件存储理念和实用性。同时,用户提出了多个技术细节问题,包括数据规模、并发处理、备份方案、AI贡献度等,显示出对产品成熟度的关注。部分评论提供了相关工具对比(如LadybugDB、DuckPGQ、Kuzu),暗示了竞争或互补关系。用户实际用例(如知识图谱、权限模型)也反映了潜在应用场景。