IT Rescue IT関連Tips情報

hyperestraier 大規模インデックス(400万文書)構築時のテクニック(1)

2006年9月19日hyperestraier

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 追記:続きを書きました.


コメントをどうぞ

免責事項

著作権者の文書による承諾を得ずに、本サイトの内容の一部、全部を無断で複写、複製、転載することは、禁じられています。
また、当ウェブサイト に記載された情報の完全性・正確性に対して一切の保証を与えるものではありません。当ウェブサイトに含まれる情報もしくは内容を利用することで直接・間接的に生じた損失に関し一切責任を負わないものとします。