[ HOME ] [ 小目次 ]

PREVTOPNEXT

5. 全文検索サーバの運用

5.1. webロボットを動作のための準備

5.1.1. postgresユーザの作成

データベースを作る権限は与えます。ユーザ追加の権限は与える必要はありません。

% su - postgres
% createuser search

5.1.2. postgresユーザ用のデータベース作成

% su - search
% createdb search

5.1.3. webロボット用のテーブル作成

% psql -f createtable.sql

5.1.4. configの編集

編集する必要がある変数について説明します。

5.1.4.1. $timeout

httpサーバと通信する時のタイムアウト時間(秒)を設定します。
$timeout = 60;

5.1.4.2. $delay

同じhttpサーバと通信する時にアクセスする間隔(分)を設定します。
$delay = 0.5;

5.1.4.3. $email_adr

ロボットを実行する人のメールアドレスを設定します。たぶんあなたのアドレスです。
$email_adr = 'you@yourdomain';

5.1.4.4. @start_urls

収集のスタートとなるURLを指定します。
@start_urls = (
'http://aaa.intranet.ne.jp/',
'http://bbb.intranet.ne.jp/',
'http://ccc.intranet.ne.jp/~user1/'
);

5.1.4.5. $count

一度の実行で収集するページ数の上限値を指定します。
とりあえず最初は少なめに設定してちゃんと動くことを確認してから大きい値を設定しましょう。
$count = 10;

5.1.4.6. @fetch_allow

GETを許可するURLを指定します。ここで記述した正規表現にマッチしたものだけをGETします。

file://という記述があるのは、既に保存ずみのページの場合は、その保存したファイルを解析の対象にするからです。

@fetch_allow = (
'^http://.*\.intranet.ne.jp/.*\.html$',
'^http://.*\.intranet.ne.jp/.*\.htm$',
'^http://.*\.intranet.ne.jp/.*\.txt$',
'^http://.*\.intranet.ne.jp/.*/$',
'^http://.*\.intranet.ne.jp/$',
'^http://.*\.intranet.ne.jp$',

'^file:///home/search/work/download/.*html$', '^file:///home/search/work/download/.*htm$', '^file:///home/search/work/download/.*txt$', '^file:///home/search/work/download/.*/$' );

5.1.4.7. @save_allow

ページをGETした後にローカルに保存するのを許可するURLを指定します。ここで記述した正規表現にマッチしたものだけを保存します。マッチしない場合は保存はしませんが、その中のリンクは抽出します。
@save_allow = (
'^http://.*\.intranet.ne.jp/.*\.html$',
'^http://.*\.intranet.ne.jp/.*\.htm$',
'^http://.*\.intranet.ne.jp/.*\.txt$',
'^http://.*\.intranet.ne.jp/.*/$',
'^http://.*\.intranet.ne.jp/$',
'^http://.*\.intranet.ne.jp$'
);

5.1.4.8. %tran_pat

この設定は、ページが既に保存ずみ場合にURL文字列をhttp://からfile://に変換して処理を続けます。
%tran_pat = (
'file:///home/search/work/download/', 'http://'
);

上の例だと

http://aaa.bbb.ccc/ddd.html

というURL文字列が

file:///home/search/work/download/aaa.bbb.ccc/ddd.html

に変換されます。

5.2. ページの収集

5.2.1. robot.plの編集

5.2.1.1. $verbose

値を1にすると処理中のデバグ情報を出力します。それ以外の値の場合はほとんど出力しないで静かに実行します。
$verbose = 1;

5.2.2. robot.plの実行

実行するとページの収集がはじまります。中断する場合はCtrl-Cで止めてください。
終了後もしくは中断後に、再び実行すると、先の収集の続きからページの収集を始めます。
% su - search
% cd ~/work
% ./robot.pl

5.3. インデックスの作成

一度に大量のファイルを処理するとメモリが足りなくなる場合があるので少しずつ処理して、あとでまとめてマージしていくスクリプトを用意しました。
downディレクトリ以下にある全てのファイルを対象としてインデックスを作成します。

5.3.1. index.plの編集

5.3.1.1. $splitline

一度に索引づけをするファイル数を指定します。
$splitline = 30;

5.3.1.2. $base

作成されるインデックスファイルのファイル名を指定します。
$base = "intra";

5.3.2. index.plの実行

% su - search
% cd ~/work
% ./index.pl


PREVTOPNEXT

[ HOME ] [ 小目次 ]

chosa@stones.com
MakeWeb 2.0