HyperEstraierでwebクローラを使ってみる
HyperEstraierでpublic_html配下のhtmlファイルやドキュメントから
indexを作成することはできたが、cakephpで作成する動的なページでは
この方法は使えないので(※1)、webクローラーを流してみることに。
※1.※testフォルダのhtmlに対してindexを作成する
estcmd gather -il ja -sd casket /home/rubytest/www/test
①まず、public_htmlやwww以下にインデックスを作成。
$cd www
$mkdir casket
$estwaver init casket
※※※※※
特定フォルダを見に行く場合はオプションをつけれる
-
- クロールする
$estwaver crawl -revcont /home/rubytest/www/casket
-
- テストする
$estcmd search -vs /home/rubytest/www/casket/_index "test"
※※※※※
②次にconfファイルの中身を設定。
$vi casket/_conf
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
seed: 1.0|http://apparelclip.com/
language: 1
特定のURLのみに指定
allowrx: ^http://[^/]*\.apparelclip\.com/ 又は
allowrx: ^http://apparelclip\.com/
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
③クローラーを起動
$estwaver crawl casket
クローラーを起動すると数十行後にout of memoryで落ちる。
再度起動してもERROR casket: could not openでオープンできず。
さくらのapache側のメモリー制限に引っかかってる様子。
回避するためにconfファイルにて下記項目を再設定。
④再設定箇所
$vi casket/_conf
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
その1.並列処理数の設定を10->1に変更する
# number of threads running in parallel
threadnum: 1
その2.負荷をかけすぎないために500ページでストップ
docnum: 500
その3.キャッシュサイズの見直し
cashesize: 256
⑤再度クローラーを起動
$estwaver crawl casket
今回は落ちずに成功。
/cgi/estseek.cgiをブラウザからアクセスし、実際に検索してみると正しい表示結果が取得できました。
めでたし。
オプションで、削除されたページを消したり、差分を取るようなコマンドがあるそうなので、試してみよう。