2ch(2ちゃんねる)のスレッドを検索できるサービスを作ってみた

2ちゃんねるをスレッドタイトルで横断検索できるサービス re.Find2ch を作ってみました。
※なお、スレッド本文は検索できません

facebook、Twitterと、色々と検索するサービスを作ってきて検索周りのノウハウが蓄えられてきていたので、新たに実験できないものかと材料を探していたところでした。

そこに、本家の検索サービスが突然使えなくなったというニュースが入ったので、一つ作ってみることにしました。
(現在はアドレスが変わって復旧している?みたいですね)

AutoPagerで遷移なしにページングでき、iPhone / Android にも一応対応してます。スマートフォンの2chブラウザアプリへのランチャー機能があり(現在BB2Cのみ)、検索してスレッドの閲覧はアプリで、という使い方ができます。

データベースの規模について。
試しに、板とスレッド一覧をクロールしてinnodbで突っ込んでみたところ、板の数が約860(200KB)、スレッドの数が40万くらい(100MB)でした。スレッド名の全文検索用にbigramの転置インデックスを作ると、500万レコードで容量が500〜600MB。
(※容量は全てインデックス込みです)

まぁ、小規模のVPSであれば大体メモリに全部乗るので充分な速度が出る、
小さすぎず大きすぎず、材料としてはちょうど良さそうです。

そこで、全文検索エンジンの選定に迷ったのだけど…

  • 以前から使い慣れているSennaは、更新時にテーブル全体がロックされてしまうMyISAMストレージエンジンしか使えず、MySQLのバージョンが5.0系に固定される
  • mroongaは、行レベルロックが可能なinnodbストレージエンジンが使えるが、インストールしてからのMySQLのアップデートがしづらそう
    (mysqlとmroongaのバージョンを合わせてなくてはならんらしい)

…いろいろ悩んだ末、外部モジュールの状況に振り回されにくくしたいので、自前で転置インデックスやら作ってやってます。

まだ試験中なので「動かしてみて、さてどうしようかな」という感じですが。

(※なお、現在は違う検索エンジンを使っています。)

なお、2ちゃんねるの仕様や技術情報については、以下のサイトを参考にしています。有難うございました。

0 件のコメント :

PAGE TOP