Rubyでつくる検索エンジン
1 検索エンジンの仕組み
 1-1 検索エンジンの種類 
  ディレクトリ型 
  ロボット型 
 1-2 ロボット型の検索エンジンの仕組み 
  ロボット 
  インデックス化 
  キーワード検索 
  管理機能 

2 開発環境の準備
 2-1 開発環境の概要 
  ハードウェア 
  ネットワーク 
  ソフトウェア 
 2-2 前提ソフトのインストール 
  Windows PCのサーバー化について 
  最初に決めておくこと 
  前提ソフトのダウンロード 
  Apacheのインストール 
  MySQLのインストール 
  Rubyのインストール 
  MySQL/Ruby for Windowsのインストール 
  ChaSen 2.3.3のインストール 
  ipadic(UTF-8版)のインストール 
  Ruby/Chasen Alternativeのインストール 
 2-3 検索エンジンのインストール 
  検索エンジンのプログラムのインストール手順 
  インターネットアクセスとChasenのテスト 

3 作成するシステムについて
 3-1 システム構成 
  システム構成図 
  ロボット 
  検索画面用プログラム 
  管理画面用プログラム 
  Webサーバー 
  データベース 
 3-2 プログラム構成 
  ディレクトリ構成 
  cgi-bin 
  html 
  1台のPCで複数の検索エンジンを動かすには 
 3-3 画面構成 
  検索画面 
  管理者用の画面 

4 データベースの設計と作成
 4-1 検索エンジンに必要なテーブル 
 4-2 データベースとテーブルの定義 

5 ロボットの作成
 5-1 ロボットの処理の概要 
  ロボットの処理 
  クラス設計 
 5-2 メインプログラム(簡略版) 
  処理の流れ 
  初期設定 
  ロボットの処理の本体部分 
  終了処理 
 5-3 ロボットを実現するクラス(1) 
  Rubyでのネットワークプログラミング 
  Httpクラスの実装 
  おもなレスポンスコード一覧 
  Urlクラス 
  FileConvertクラス 
  Logクラス 
 5-4 ロボットを実現するクラス(2) 
  Perserクラスの概要 
  Bufferクラス 
  Parserクラスのコンストラクタと初期設定メソッド 
  Parserクラスの処理内容 
  WebDBクラス 
 5-5 メインプログラム(完成版) 
  実際の運用に必要な機能 
  ロボットに対する指定(Robots.txt)とそのチェック 
  ロボットの動きを設定する 
  実行中のロボットを外部から制御する 
  メイン処理の完成版 

6 キーワード検索処理の作成
 6-1 ブラウザから利用するプログラムの作り方 
  WebサーバーとCGI 
  RubyでCGIプログラムを書く 
 6-2 検索エンジン本体の作成 
  メイン画面と検索結果の表示画面 
  オプション指定画面 
  キーワード検索を行うプログラム 
  画面表示の共通機能 
  SearchEngineクラス 
  WebDBクラス 
 6-3 その他の画面の作成 
  「新着情報」画面 
  「このシステムについて」画面 
  「検索対象サイト」画面 
  「サイトの推薦」画面 
  「HELP」画面 

7 管理機能の作成
 7-1 管理者用の画面とログイン機能 
  管理者用画面の一覧 
  ログイン画面 
 7-2 システム管理画面 
  システム管理画面 
  データベースの操作 
  登録サイトのバックアップと復元 
  インターネットの巡回を停止 
 7-3 登録サイト一覧画面 
  登録サイトの一覧 
  巡回時にエラーとなったURLの一覧 
 7-4 サイトの新規登録画面、変更・削除画面 
  新規登録、変更・削除画面 
  データベースへの新規登録、変更・削除処理 
 7-5 巡回ログ画面 
  巡回ログのインデックス画面 
  巡回ログの内容の表示画面 
 7-6 その他の画面 
  推薦サイト一覧 
  検索ログ画面 
  システム状況画面 

8 検索エンジンを動かす
 8-1 検索エンジンを動かすには 
  どのようなジャンルのサイトを検索したいのか 
  システムの設定値の決定 
  検索サイトのディレクトリ名と、suzaku_conf.rbファイルの変更 
  設定ファイルの修正 
  データベースの作成 
  検索対象サイトの登録 
  ホームページの巡回処理を実行する 
  検索サイトの画像の変更 
  suzaku_miniの設定 
 8-2 運用上の注意点 
  ロボットを定期的に動かす 
  検索対象となるページの種類を増やす 
  ロボットの巡回にかかる時間を短くするには? 
  キーワード検索のレスポンスを短くするには? 
 8-3 機能アップのためのヒント 
  PDFやMicrosoft Wordファイルも検索対象にする 
  複合語の取り扱い 
  フレーズ検索、部分一致検索 
  日本語の表記の微妙な違いの吸収 
  ページランクの考え方の導入 
 8-4 トラブルシューティング 
  ロボットを動かすとハングアップする 
  画面が正しく表示されない 
  登録したサイトのトップページの先のページをロボットが巡回してくれない 
 8-5 おわりに
  suzaku_miniの基はSUZAKU 
  SUZAKU開発の経緯について 
  suaku_miniのライセンスについて 
  参考文献・参考サイト