hyperestraier 大規模インデックス(400万文書)構築時のテクニック(1)
2006.09.19
hyperestraier-1.4.0 を使って,400万弱の文書のインデックスを作成しました.
estcmd inform の結果は以下のとおりです.
number of documents: 3937360 number of words: 1875628 number of keywords: 0 file size: 5161281605 inode number: 8459202インデックスへの文書の登録(estcmd gather)は,おおよそ丸1日で終わりました.元データは自作のプログラムで生成した文書ドラフト形式(.est)です. 単語の頻度データベースの作成(estcmd words)は数時間で終わりました.生成された頻度データベースのサイズは86MBになりました. この頻度データベースを用いて,各文書にキーワードデータベースを構築する作業(estcmd extkeys)を行いました.この作業は丸10日以上走らせましたが終了しませんでした.待ちかねて,途中で作業を停止しました. インデックス構築作業に用いたマシンは,PentimM1.7GHz,1GBメモリ,80GB HDD×2台のデスクトップマシンです.OSはCentOS4.3を使いました. どうやら,作業中にメモリ不足になりスワップ領域を使い始めたことが処理が滞った原因のようです.処理中にtopコマンドで見るとCPU利用率は0.8%でした.freeコマンドで見ると,実メモリの空き容量はほぼ無く,2GBあるスワップ領域は800MB程度使用していました. 大量の文書からなるインデックスを構築するには,メモリ容量が重要のようです. 現在方針を変えて,約400万の文書を5等分して80万文書のインデックスを5つ作成し,最後にestcmd merge でマージしようと試みています.結果は後日報告いたします. 2006/9/22 追記:続きを書きました.
カテゴリー:技術情報メモ