リアルタイムインデックス作成とSQLに対応し、全文検索・ベクトル検索・ハイブリッド検索を提供するオープンソースの検索データベース。Elasticsearchの代替として利用できます。
quickwit-oss/tantivy
Apache Luceneに着想を得たRust製の全文検索エンジンライブラリ。アプリケーションに独自の検索機能を組み込めます。
代替できる製品:Elasticsearch
Apache Solr
- スター
- 16,247
- フォーク
- 1,017
- 未解決の Issue
- 484
- 最終コミット
- 20 時間前
これは何?
Tantivyは、ソフトウェアに全文検索機能を組み込むためのRustクレートです。単体で動作する検索サーバーではなく、開発者がAPIを使ってスキーマを定義し、ドキュメントをインデックス化して、クエリを実行します。設計はApache Luceneに忠実で、Luceneと同じランキング方式のBM25スコアリングを採用しています。
一般的な検索機能を一通り備えています。17のラテン文字系言語に対応したステミング付きの設定可能なトークナイザー、フレーズ検索と範囲検索、AND/OR演算子を使える自然言語クエリ、ファセット検索などを利用できます。フィールドの型はテキスト、整数、浮動小数点数、日付、IPアドレス、真偽値、JSONに対応し、fast fieldsはLuceneのdoc valuesと同様に機能します。ドキュメントはLZ4、Zstd、または圧縮なしで保存でき、集約用collectorではヒストグラム、範囲バケット、基本統計量を取得できます。
Tantivyはインクリメンタルインデックス作成とマルチスレッドでのインデックス作成に対応し、起動時間は10ミリ秒未満のため、CLIツールにも適しています。中国語と日本語のトークナイズには、サードパーティ製のトークナイザークレートを利用します。Linux、macOS、Windowsで安定版Rustを使って動作します。
主な機能
- 01Luceneと同じランキング方式のBM25スコアリング
- 0217のラテン文字系言語に対応した、ステミング付きの設定可能なトークナイザー
- 03フレーズ検索、範囲検索、自然言語によるブール検索
- 04インクリメンタルインデックス作成とマルチスレッドでのインデックス作成
- 05fast fields、ファセット検索、集約
- 06LZ4、Zstd、または圧縮なしに対応したドキュメントストア
ユースケース
- 別のサーバーを立てずに、Rustアプリケーションへ全文検索を追加する
- 起動の速い独自のCLI検索ツールを構築する
- メールやメッセージのアーカイブをインデックス化してローカル検索する
- Lucene風のクエリが必要なサービスに検索エンジンを組み込む
クイックスタート
- 1
リポジトリをクローンする
git clone https://github.com/quickwit-oss/tantivy.git - 2
プロジェクトディレクトリに移動する
cd tantivy - 3
Cargo(stable Rust)でテストを実行する
cargo test
使う前に知っておきたいこと
- Rustのライブラリであり、すぐに実行できる検索サーバーではないため、その上に独自の検索アプリケーションを構築する必要があります。
- 分散検索は対象外です。分散検索にはQuickwitを使用してください。
- ドキュメントは不変です。編集するには削除して再インデックスする必要があります。
- 中国語と日本語のトークン化にはサードパーティ製のcrateを使用します。
トピック
よくある質問
- tantivy とは?
- Apache Luceneに着想を得たRust製の全文検索エンジンライブラリ。アプリケーションに独自の検索機能を組み込めます。 Tantivyは、ソフトウェアに全文検索機能を組み込むためのRustクレートです。単体で動作する検索サーバーではなく、開発者がAPIを使ってスキーマを定義し、ドキュメントをインデックス化して、クエリを実行します。設計はApache Luceneに忠実で、Luceneと同じランキング方式のBM25スコアリングを採用しています。
- tantivy は無料で使えますか?ライセンスは?
- tantivy は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- tantivy は今もメンテナンスされていますか?
- 活発にメンテナンス中。tantivy の最終コミットは 2026年10月21日 です。
- tantivy は何に使えますか?
- 別のサーバーを立てずに、Rustアプリケーションへ全文検索を追加する 起動の速い独自のCLI検索ツールを構築する メールやメッセージのアーカイブをインデックス化してローカル検索する Lucene風のクエリが必要なサービスに検索エンジンを組み込む
- tantivy のインストール方法は?
- リポジトリをクローンする: git clone https://github.com/quickwit-oss/tantivy.git プロジェクトディレクトリに移動する: cd tantivy Cargo(stable Rust)でテストを実行する: cargo test
- tantivy はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/quickwit-oss/tantivy
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Go製の軽量な単一バイナリ型全文検索エンジン。アプリケーション検索向けに、Elasticsearchのシンプルな代替として提供されています。
Javaで書かれた高性能かつ多機能な全文検索ライブラリ。検索アプリケーションを構築するための基盤として使われます。
Redisに全文検索、セカンダリインデックス、ベクトル類似検索、集計クエリを追加するRedisモジュール。
Apache Solrは、全文検索、ベクトル検索、地理空間検索に対応した、Apache Luceneベースのオープンソース検索プラットフォームです。
既存のPostgresデータベースに全文検索、ベクトル検索、BM25スコアリング、集計機能を追加するPostgres拡張です。