Senna の PHP バインディング

グニャラくんのグニャグニャ備忘録@はてな - PEAR::CodeGen_PECLPHP拡張を書いてみよう(その1)
http://d.hatena.ne.jp/tasukuchan/20070228/pear_codegen_senna

PHP から Senna を呼び出して、インデックスの作成→インデックスへの文書の追加を行うことができるそうです。えっと、手元で試した限りインデックスへの文書の追加がうまくいかなくて止まってるんですが。なので、まだ良く分からないですが。

ナタリーでは、検索用途に MySQLSenna を組み込んでいるのですが、運用とか考えると MySQL にパッチ当てたくないのが正直なところ。なので、MySQL の ID と絡めてインデックスに登録しておいて、PHP で検索実行してデータ本体は MySQL からというのはありなんじゃないかと思ったり。ID から MySQL に SELECT かけるところが2度手間ですが、純粋な全文検索用途(キーワード投げて、結果が20-30件くらい返ってくるような)なら問題ないんじゃないかなあ。

2ちゃんの Senna スレッドの書き込みによると、mmap を使用しているので、インデックス用の領域は例えば mod_php 乗っけた apache の複数プロセス間で共有されるのだそうです。なるほど。