Repolode
teamtnt

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. 1

    Composerでライブラリをインストールする

    composer require teamtnt/tntsearch
  2. 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 の数値は毎日更新されます。

関連プロジェクト