Repolode
quickwit-oss

quickwit-oss/tantivy

一个用 Rust 编写、受 Apache Lucene 启发的全文搜索引擎库,用于在应用中构建搜索功能。

可替代:ElasticsearchApache Solr

Star
16,247
Fork
1,017
未关闭 Issue
484
最近提交
21小时前

这是什么?

Tantivy 是一个 Rust crate,用于在自己的软件中构建全文搜索功能。它不是开箱即用的搜索服务器,开发者通过其 API 定义 schema、索引文档并执行查询。设计上与 Apache Lucene 高度相似,排序使用与 Lucene 相同的 BM25 评分。

库内包含常见的搜索组件:可配置的分词器,支持 17 种拉丁语系语言的词干提取;短语查询、范围查询、支持 AND/OR 的自然查询语法以及分面搜索。字段类型包括文本、整数、浮点数、日期、IP、布尔值和 JSON,快速字段的作用类似 Lucene 的 doc values。文档存储支持 LZ4、Zstd 或不压缩,聚合收集器提供直方图、范围分桶和基础统计。

支持增量索引和多线程索引,启动时间小于 10 毫秒,适合命令行工具。中文和日文分词可通过第三方分词器 crate 接入。可在 Linux、macOS 和 Windows 上使用稳定版 Rust 编译运行。

核心功能

  • 01采用与 Lucene 相同的 BM25 评分排序
  • 02可配置分词器,支持 17 种拉丁语系语言的词干提取
  • 03支持短语查询、范围查询和自然语言布尔查询
  • 04支持增量索引和多线程索引
  • 05提供快速字段、分面搜索和聚合统计
  • 06文档存储支持 LZ4、Zstd 压缩或不压缩

适用场景

  • 在 Rust 应用中添加全文搜索,无需单独部署搜索服务器
  • 构建启动快速的命令行搜索工具
  • 为邮件或消息归档建立本地检索索引
  • 在需要 Lucene 式查询的服务中嵌入搜索引擎

快速上手

  1. 1

    克隆代码仓库

    git clone https://github.com/quickwit-oss/tantivy.git
  2. 2

    进入项目目录

    cd tantivy
  3. 3

    使用 Cargo(稳定版 Rust)运行测试

    cargo test

使用前须知

  • 它是一个 Rust 库,而不是开箱即用的搜索服务器,你需要在其基础上构建自己的搜索应用。
  • 分布式搜索不在其范围内,如需此功能请使用 Quickwit。
  • 文档是不可变的,因此修改文档需要先删除再重新索引。
  • 中文和日文分词依赖第三方 crate。

标签

常见问题

tantivy 是什么?
一个用 Rust 编写、受 Apache Lucene 启发的全文搜索引擎库,用于在应用中构建搜索功能。 Tantivy 是一个 Rust crate,用于在自己的软件中构建全文搜索功能。它不是开箱即用的搜索服务器,开发者通过其 API 定义 schema、索引文档并执行查询。设计上与 Apache Lucene 高度相似,排序使用与 Lucene 相同的 BM25 评分。
tantivy 可以免费使用吗?用的什么许可证?
tantivy 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
tantivy 还在维护吗?
活跃维护中。tantivy 最近一次提交是在 2026年10月21日。
tantivy 适合用来做什么?
在 Rust 应用中添加全文搜索,无需单独部署搜索服务器 构建启动快速的命令行搜索工具 为邮件或消息归档建立本地检索索引 在需要 Lucene 式查询的服务中嵌入搜索引擎
tantivy 怎么安装和运行?
克隆代码仓库: git clone https://github.com/quickwit-oss/tantivy.git 进入项目目录: cd tantivy 使用 Cargo(稳定版 Rust)运行测试: cargo test
在哪里获取 tantivy?
源代码和安装说明在 GitHub 上:https://github.com/quickwit-oss/tantivy

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目