Tantivy:一个高性能的Rust全文搜索引擎库
项目基础介绍和主要编程语言
Tantivy是一个基于Rust编写的高性能全文搜索引擎库,灵感来源于Apache Lucene。它不是一个开箱即用的搜索引擎服务器,而是一个可以用来构建搜索引擎的库。Tantivy的设计目标是提供一个快速、高效的全文搜索解决方案,适用于需要高性能搜索功能的应用场景。
项目的核心功能
- 全文搜索:支持高效的全文搜索功能,能够处理大规模文本数据。
- 可配置的词法分析器:支持多种语言的词法分析,包括中文、日文和韩文等。
- 快速启动时间:启动时间小于10毫秒,非常适合命令行工具。
- BM25评分:采用与Lucene相同的BM25评分算法。
- 自然查询语言:支持自然语言查询,例如
(michael AND jackson) OR "king of pop"
。 - 短语查询:支持短语查询,例如
"michael jackson"
。 - 增量索引:支持增量索引,能够高效地更新索引。
- 多线程索引:支持多线程索引,能够快速处理大规模数据。
- MMAP目录:使用MMAP技术提高性能。
- SIMD整数压缩:在支持SSE2指令集的平台上使用SIMD整数压缩技术。
- 快速字段:支持单值和多值的u64、i64和f64快速字段。
- 文档存储压缩:支持LZ4和Zstd压缩技术。
- 范围查询:支持范围查询功能。
- 分面搜索:支持分面搜索功能。
- 可配置的索引:支持可选的词频和位置索引。
项目最近更新的功能
- JSON字段聚合:新增了对JSON字段的聚合功能。
- Collector:直方图、范围桶、平均值和统计指标:新增了多种Collector功能,包括直方图、范围桶、平均值和统计指标。
- Searcher Warmer API:新增了Searcher Warmer API,用于优化搜索器的预热过程。
- Cheesy logo with a horse:新增了一个带有马的可爱logo。
Tantivy作为一个高性能的全文搜索引擎库,不断在功能和性能上进行优化和扩展,旨在为用户提供更加强大和灵活的搜索解决方案。