Sennaは組み込み型の全文検索エンジンです。DBMSやスクリプト言語処理系等に組み込むことによって、その全文検索機能を強化することができます。 n-gramインデックスと単語インデックスの特徴を兼ね備えた、高速かつ高精度な転置インデックスタイプのエンジンです。コンパクトな実装ですが、大規模な文書量と検索要求を処理できるように設計されています。
未来検索ブラジルによる、オープンソース(GPL2)の組み込み型検索エンジン Senna。まだサイトが立ち上がったばかりなのでドキュメントが揃っていないのですが、これは多言語アプリケーションにとって非常に期待の大きいソフトウェアです。
「DBMSやスクリプト言語処理系等への組み込み易さを重視しています。」とあるように、Namazu その他の検索エンジンとは異なり、単独で動作するエンジンではなく他のソフトウェアに組み込まれて動作する検索エンジンです。つまりは、Senna を使えば MySQL で日本語による全文検索が可能になるということです。
実は、はてなブックマークのブックマーク検索はこの Senna + MySQL で実現されています。実際の内部での検索クエリは MySQL の full text search と同じ SQL で実行できます。ソースを見ていただければ分かりますが、Senna の MySQL バインディングは、今のところシングルバイトのみの対応になっている組み込みの full text search にフックして、日本語の全文検索が可能となるような仕組みになっています。
つまりは、日本語で検索して任意のカラムでソートが可能ということです。これを待ち焦がれていた MySQL ユーザーは多いはず。検索インデックスの生成もインクリメンタルなので、データを追加してから検索インデックスが作成されるのに必要なオーバーヘッドも最小限で済みます。
いまのところ、Subversion 経由でソースが取得できるのですが、コンパイルして環境を整えるのにはちょっと一苦労すると思いますが、そのあたりは立ち上がったばかりのプロジェクトなので今後に期待です。
近頃、全文検索関連の動きが目立ってますね。
いろいろググッてたら家の近所にも開発してる人がいました^^;びっくら