索引格式

本节介绍 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) 索引的文本 |