レコメンドエンジンを検討してみた
運営してるサイトへレコメンド機能を導入するため、レコメンドエンジンをどうするか検討している。
考えられる選択肢は現段階では3つ。
とりあえず、前者二つを比較検討してみる。
Cicindela | Vogoo | |
---|---|---|
実装言語 | Perl | PHP |
対応DB | MySQL >= 5.0 | MySQL, PostgreSQL |
インターフェイス | WebAPI | PHPクラス |
インストール | 全手動,キモイ*1 | Webインターフェイスあり |
柔軟性 | ◎ | × |
マニュアル | 日本語と英語 | 英語のみ |
ソースの美しさ | ○ | × |
他への影響 | 設定次第 | global変数で汚染 |
利用実績 | livedoor クリップ他 | 映画生活 |
CicindelaはMySQLのMemoryストレージエンジン*2を用いたメモリ上の一時テーブルを中間テーブルに利用することで高速化を図っているっぽい。単純化したWebAPIを用いるという発想は秀逸。また、内部アーキテクチャも洗練されていて十分な柔軟性を持っている。一方で、インストール周りで泥臭さが残っていて導入の敷居は高そう。
VogooはPHPライブラリで、しかも上位版を販売しているので期待したのですがPHP4なライブラリで、しかも一見しただけでglobal変数の汚染やSQLインジェクション脆弱性が見つかり頂けない感じでした。インストール用Webインターフェイスが用意されていて手軽に利用できる一方で柔軟性や安全性などに多くの問題を抱えていおり個人的には避けたいと思いました。
ということで、既存のものを使うとしたらCicindelaに決まりです。