システムをいじりだして以来、「全文検索」(というモノというかシステムというか、)には格別の思い入れがあります。
altavistaの登場とか、gooの登場とか、そしてもちろんぐぐ様の登場とかのたびに、当時はただただ「中の人はスゴいなあ」と思っていたわけで、もちろん、いわゆる汎用データベースは(って、ファイルメーカーですけど)触ってたけど、たぶん、こういった検索エンジンたちはファイルメーカーとかの延長にあるとはとても思えないパフォーマンスを誇っていて、だからnamazuの存在を知ったときは「これはひょっとするとホントにすごいモノかも」と思って、必死に勉強して「サイト内全文検索システム」を会社のサイトやよそさまのサイトにシコシコ組み込んだりしていたわけです。年月は過ぎて、いわゆる検索エンジン業界はぐぐ様一人勝ちで、一方「サイト内全文検索システム」なんてのはそれほどすごいものでもなくなっていくんですが(そのわりに、組み込んでるサイトほんと少ないですよねー)、namazu一辺倒だったオープンソース系全文検索システムは、いつしか百花繚乱、よりどりみどりの活況を呈していたりするんですね。
そんな中で、ここ1〜2年の間注目しているのがHyperEstraier(snatcher→estraierと出世魚のごとく改名して今にいたっています)です。
全文検索システムのキモは(たぶん)インデックスの作り方にあって、HyperEstraierにおいては「形態素解析」系のアプローチからはじめて、いまではN-gramでのインデクシングが主流で、そして最近になって(ふたたび)mecabを援用し、形態素解析に気持ち回帰していたりとなかなか意欲的(スリリングとも言う)に開発されておられるのですが、正規表現が通ったり、ベースの文字コードがUTF-8だったり(なので多言語対応)、P2Pによるインデックスの偏在ができたり、とにかく触っていて面白い! の一言に尽きます。しかし、利用者側から言わせてもらうと、最大の利点は「ライブラリとして各種言語から使える」という部分だったりします。
ものすごーく乱暴に言うと、実は検索エンジンとしてはkakasiで乱暴にぶったぎっていた(chasenは遅かったなあ……)namazuのアプローチでも結構ちゃんと使える、という現実はあって(ていうかスピードだけならnamazuの方がたいていのイマドキシステムより速いんじゃないかなあ)、namazuがすたれたのはやはり利用方法としてcgi叩くきりしかなくて(phpへのnamazuバインディングとかも一応あったんですけどね……)、普及をはばんだのは実はソコなんじゃないかなーと思っています。で、我らが(笑)HyperEstraierはその点はぬかりなく、最初からJavaバインディング、Rubyバインディングが存在し、さらにサブプロジェクトにおいてはPythonにも対応しているわけです。
……アレ、phpは?(汗ドバー)
というわけで困っていたら、ちゃんと偉い人が作ってくれました。
Hyper Estraier の配布物に含まれる estraierpure.rb を PHP5 に移植した Pure PHP クラスライブラリ EstraierPure を作成しました。
(Page2より)
偉い! 偉すぎです。しかも、php5版でカイハツされていたのに、「php4版も〜」とリクエスト出したら一瞬で作ってくれたという! もうrskさんのサイトのある方向には足向けて寝られません。(安定稼働したら自分の鯖にサンプル組み込んで報告予定。っていうかもう稼働はしているんですが)
p2pのあたりも、メタ検索がどうこうということよりもインデックスと検索部分を分けておけそうなところにグっときたりしていて、そうするといろいろ楽しそうじゃないですか。いろいろと。来年はそこら辺に絡む時間がちょっとでも取れるといいなあ。(鬼が笑います)