はじめてまともにPHPを書いた須藤です。
第115回 PHP勉強会@東京で「PHPでPostgreSQLとPGroongaを使って高速全文検索!」という話をしました。
関連リンク:
内容
PGroongaを使えばPHPで簡単にリッチで高速な全文検索システムを作れるよ!ということを伝えたかったので、実際にPHPで「PHPのドキュメントを全文検索するシステム」を作ってそれを紹介しました。詳細はスライドで説明していますが、次のような機能があります。
-
探したいものが見つかる高速全文検索機能(基本機能)
-
公式ドキュメントの検索は関数やクラス名の検索のみで説明文では検索できない
-
Google custom searchを使ったサイト内検索機能は一般的な文書の検索に特化しているため、PHP固有の「@」で「エラー制御演算子」を検索することができない(英語として検索すると「at sign」でヒットする)
-
-
キーワード周辺のテキストをハイライト(基本機能)
-
入力補完(基本機能)
-
ローマ字でも入力補完可能(リッチな機能)
- 例:「seiki」→「正規表現」
-
サービスとしては動かしていないのですぐに試せませんが、ソースコードはフリーソフトウェアとして公開しているのでローカルで動かすことができます。動かし方のドキュメントは書いていませんが、標準的なLarabelの使い方だと思っているので、Larabelを使ったことがある人なら動かせるのではないかと思います。
私はこれまでまともにPHPを書いたことがありませんでしたが、3日で実装できました。簡単にリッチで高速な全文検索システムを作れることが示せたのではないかと思います。
おねがい
このイベントのために作ったPHP document searchですが、PHPユーザーにとって有用なサービスになるのではないかと思うので、だれかサービスとして運用したり、メンテナンスしたりしませんか!?私は日常的にPHPを書くことはないのでサービスとして運用する予定はないのですが、技術的なサポートはするつもりです。
興味がある方はissueで連絡してください。
まとめ
PHPユーザーにPGroongaを紹介する機会があったのでPHPのドキュメントを検索するPHP document searchを作ってそれを元にPGroongaを紹介しました。PHP document searchの運営者・メンテナーを募集しているので、ぜひご連絡ください!
おしらせ
8月1日(火)14:00-16:00にMySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナーを開催します。PGroongaを使いたくなった人はぜひこの機会をご活用ください!