RAG 与知识系统

Infino

infino-ai/infino

Infino 是一个快速检索引擎,能够对以 Parquet 格式原生存储在对象存储上的单份数据执行 SQL、全文搜索和向量搜索。

★ 67星级
⑂ 18Fork 数
60未解决的问题
Rust语言
Apache-2.0许可证
Q@project.QualityScore编辑评分

项目截图

Infino 的截图 Infino 的截图 Infino 的截图 Infino 的截图 Infino 的截图 Infino 的截图

概览

Infino 通过在对象存储的经济性之上实现搜索引擎性能,优化了性价比。它允许用户对相同的行运行多模态查询——关键词(BM25)、向量和 SQL——而无需复制数据。数据以符合规范的 Parquet 格式保存在 S3、Azure、GCS 或本地磁盘上,确保了快照隔离读取、原子提交,并且读取操作无供应商锁定。该系统使用“superfile”格式,这是一种有效的 Parquet 文件,在标准页脚之前拼接了嵌入式全文和向量索引。

主要功能

  • 多模态查询:在单份数据副本上执行 BM25、向量和 SQL。
  • 对象存储原生:数据存放在 S3、Azure、GCS 或本地磁盘上。
  • 开放格式:数据以符合规范的 Parquet 格式存储,可被任何兼容 Parquet 的工具读取。
  • 混合搜索:原生支持结合关键词和向量搜索及倒数排名融合。
  • 跨表 SQL 连接:能够将检索表函数与标准表进行连接。
  • 快照隔离读取和原子提交。
  • 下推过滤器:向量搜索受关键词匹配限制。

要求、安装和快速入门

Python:pip install infino 或 uv pip install infino
Node.js:npm install @infino-ai/infino
Rust:cargo add infino(或将 infino = "0.1" 添加到 Cargo.toml 依赖项中)。注意:Infino 默认安装 mimalloc 全局分配器;如果要嵌入到已设置分配器的进程中,请使用 default-features = false 禁用它。

用法

使用 URI(例如 memory://、s3://bucket/prefix、./data)连接到后端。使用模式和定义全文及向量索引的 IndexSpec 创建表。追加记录,然后使用 bm25_search、vector_search 或 query_sql 进行查询。对于混合检索,使用 SQL 连接 BM25 和向量搜索结果,应用倒数排名融合。标准的 Parquet 工具可以直接读取生成的 .sf.parquet 文件,而无需在读取路径中包含 Infino。

模型兼容性与使用场景

Not stated in the repository metadata

许可证与风险说明

Apache-2.0

Editorial verification 2026-08-02: repository URL, owner, description, license and repository statistics were reviewed. License metadata: Apache-2.0. README was fetched for the channel draft; re-check repository dependencies, releases and model terms before production use.

发布与维护

Not stated in the repository metadata

LanceDB

lancedb/lancedb

★ 11.1KRust

EvalScope

modelscope/evalscope

★ 3.2KPython