只今作っています。ええ、作ってしまっています...
はじめは「誰かが作っているだろう」とタカを括っていたので、Googleで探したのです。
であったはあったのですが、どうやらプロジェクトは既に終わってしまっている模様。
でもって誰かがアーカイブとか別に公開しているかなと思い、これも探してみたけどないし...
結局自分でつくっちまうか、ということで現在製作中です。
とはいってもさほど難しくもなく、namazuには既にインターフェースが存在するので、まずはこのインターフェースを使用したライブラリを作成。
本当はPHPのextensionモジュールに直接書いてしまってもいいのですが、namazuのenum定数とPHPのdefine定義が重複してしまってコンパイルエラーとなってしまい、仕方がなくnamazuインターフェースを実装した別ソースを作成して、PHPインターフェースはこいつのポインタを持って使えるようにしました。
大体は出来上がっているのですが、メモリ管理は大丈夫か、とか重い検索でも大丈夫か、などが検証できていません。メモリ管理は多分大丈夫だと思うのですが、なにせはじめnamazuインターフェースはPHPと別個で作っており、Apacheのメモリ管理を真似たソースを自前で実装してこれで管理をしていたので、多少の不安はあります。例えばスクリプトが終了したときのメモリ解放などがそうですね。
まだちょっとだけ時間はかかりそうですけど、公開して追加したいインターフェースなどを聞いてみたいです。自分で作っていると必要最低限しか実装しないので...
で、なんでこんなものを作ったかというと、PHPで全文検索を行いたかったからなんです。現在のnamazuですと、PHPからnamazuコマンドを実行してもSCRIPT_NAMEとQUERY_STRINGをチェックしてnamazu.cgiを実行しろと怒られてしまいますから。
