外部検索サーバーを使わず、TNTSearch PHPエンジンでEloquentモデルに全文検索を追加するLaravel Scoutドライバー。
teamtnt/tntsearch
SQLite、MySQL、Redisにインデックスを構築し、順位付けしたドキュメントIDを返すPHP向け全文検索エンジンライブラリ。
- スター
- 3,201
- フォーク
- 296
- 未解決の Issue
- 56
- 最終コミット
- 4 日前
これは何?
TNTSearchは、別途検索サーバーを稼働させずにアプリケーションへ全文検索を追加できるPHPライブラリです。SQLite、MySQL、PostgreSQLなどのデータベースやテキストファイルのフォルダーをデータソースに指定してインデックスファイルを作成し、そのインデックスに対してクエリを実行します。インデックスはデフォルトでSQLiteに保存され、MySQLとRedisのエンジンも利用できます。また、インデックス全体を再構築せずに、挿入・更新・削除の呼び出しで更新できます。
検索ではBM25やTF-IDFによる関連度の順位付け、AND・OR・NOTを使ったブール検索、編集距離を設定できるあいまい検索、入力中のプレフィックス検索に対応しています。さらに、複数言語のステマー、カスタムトークナイザー、検索結果のハイライトとスニペット、位置情報に基づく最近傍検索、シンプルなテキスト分類機能も備えています。
検索メソッドが返すのはドキュメントIDとスコアで、行データそのものではありません。そのため、アプリケーション側でデータベースから該当レコードを取得し、返された順序を維持します。Laravel Scout用のドライバーは別パッケージとして提供されています。
主な機能
- 01BM25とTF-IDFによる関連度の順位付け
- 02AND、OR、NOT演算子によるブール検索
- 03編集距離とプレフィックス長を調整できるあいまい検索
- 04入力中のプレフィックス検索
- 05SQLite、MySQL、Redisへのインデックス保存と差分更新
- 06複数言語のステマーとカスタムトークナイザー
ユースケース
- 別途検索サーバーを用意せずに、PHPまたはLaravelアプリケーションへサイト内検索や商品検索を追加する
- テキストファイルとして保存されたドキュメント群を検索する
- 座標を使って近くのスポットを検索する
- PHPプロジェクトにシンプルなテキスト分類を追加する
クイックスタート
- 1
Composerでライブラリをインストールする
composer require teamtnt/tntsearch - 2
TNTSearchを設定し、ソースクエリからインデックスを作成して選択し、検索する
使う前に知っておきたいこと
- 検索結果として返されるのはドキュメントIDとスコアで、ドキュメント自体ではありません。そのため、自分のデータベースから行を取得する必要があります。
- デフォルトエンジンを使用するには、PHP 7.4以降とpdo_sqlite拡張機能が必要です。
収録されている特集
トピック
よくある質問
- tntsearch とは?
- SQLite、MySQL、Redisにインデックスを構築し、順位付けしたドキュメントIDを返すPHP向け全文検索エンジンライブラリ。 TNTSearchは、別途検索サーバーを稼働させずにアプリケーションへ全文検索を追加できるPHPライブラリです。SQLite、MySQL、PostgreSQLなどのデータベースやテキストファイルのフォルダーをデータソースに指定してインデックスファイルを作成し、そのインデックスに対してクエリを実行します。インデックスはデフォルトでSQLiteに保存され、MySQLとRedisのエンジンも利用できます。また、インデックス全体を再構築せずに、挿入・更新・削除の呼び出しで更新できます。
- tntsearch は無料で使えますか?ライセンスは?
- tntsearch は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- tntsearch は今もメンテナンスされていますか?
- 活発にメンテナンス中。tntsearch の最終コミットは 2026年11月3日 です。
- tntsearch は何に使えますか?
- 別途検索サーバーを用意せずに、PHPまたはLaravelアプリケーションへサイト内検索や商品検索を追加する テキストファイルとして保存されたドキュメント群を検索する 座標を使って近くのスポットを検索する PHPプロジェクトにシンプルなテキスト分類を追加する
- tntsearch のインストール方法は?
- Composerでライブラリをインストールする: composer require teamtnt/tntsearch TNTSearchを設定し、ソースクエリからインデックスを作成して選択し、検索する
- tntsearch はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/teamtnt/tntsearch
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Redisに全文検索、セカンダリインデックス、ベクトル類似検索、集計クエリを追加するRedisモジュール。
Typesenseは、タイプミス許容、ファセット検索、地理検索、ベクトル検索に対応し、AlgoliaやElasticsearchよりシンプルな選択肢を目指すオープンソースのインメモリ検索エンジンです。
Apache Luceneに着想を得たRust製の全文検索エンジンライブラリ。アプリケーションに独自の検索機能を組み込めます。
リアルタイムインデックス作成とSQLに対応し、全文検索・ベクトル検索・ハイブリッド検索を提供するオープンソースの検索データベース。Elasticsearchの代替として利用できます。
BM25Fによる語彙検索、ベクトル検索、ハイブリッド検索に対応するRust製のインプロセスライブラリ兼マルチテナントサーバー。AIエージェント向けMCPサーバーも提供します。