索引格式
本节介绍 txtai 索引格式。每个组件都旨在确保通过编程和平台无关的方式开放访问底层数据。
如果底层库有其索引格式,则使用该格式。否则,txtai 使用 MessagePack 序列化来持久化内容。
要了解这些组件如何协同工作,请阅读 索引指南 和 查询指南。
ANN
用于存储向量嵌入的近似最近邻 (ANN) 索引配置。
组件 | 存储格式 |
---|---|
Faiss | 由库提供的本地文件格式 |
Hnswlib | 由库提供的本地文件格式 |
Annoy | 由库提供的本地文件格式 |
NumPy | 通过 np.save / np.load 保存的本地 NumPy 数组文件 |
通过 pgvector 的 Postgres | Postgres 数据库中的向量表 |
核心
核心嵌入索引文件。
组件 | 存储格式 |
---|---|
配置 | 以 JSON 格式存储的嵌入索引配置 |
索引 ID | 使用 MessagePack 序列化的嵌入索引 ID。仅在禁用内容存储(数据库)时启用。 |
数据库
数据库存储元数据、文本和二进制内容。
组件 | 存储格式 |
---|---|
SQLite | 使用 SQLite 的本地数据库文件 |
DuckDB | 使用 DuckDB 的本地数据库文件 |
Postgres | 通过 SQLAlchemy 连接的 Postgres 关系数据库。支持通过此库连接其他数据库。 |
图
嵌入索引的图节点和边
组件 | 存储格式 |
---|---|
NetworkX | 导出到本地文件并使用 MessagePack 序列化的节点和边 |
Postgres | 存储在 Postgres 数据库中的节点和边。支持其他数据库。 |
评分
稀疏/关键词索引
组件 | 存储格式 |
---|---|
本地索引 | 使用 MessagePack 序列化的元数据。词项存储在 SQLite 中。 |
Postgres | 使用 Postgres 全文搜索 (FTS) 索引的文本 |