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