S2Robot で半年以上放置してきたサイトマップ対応をしました。sitemaps.xml とかをクロールの対象としてクロールすると、そのサイトマップのリンクを次のクロール先として展開します。対応するフォーマットとしては、XML Sitemaps、XML Sitemaps Index とテキスト(URLリスト)です(RSSとかは未対応)。というわけで、S2Robot もまた一つ成長しました 🙂 これに合わせて、Fess もサイトマップを使えるようになりました。URL として指定すれば、サイトマップのリンクをクロール対象にすることができます。Fess 2.0.0 もぼちぼちリリースしても良いかな、っと思い始めています。
カテゴリー: CodeLibs
目標達成: 100万ドキュメント
目標としていた100万ドキュメントのクロールおよびインデックス化を達成することができました。先月くらいからあれやこれやとチューニングをし続け、ようやく達成できました。テストするにも1回やると数日かかるので、かなり時間がかかってしまいました。まぁ、クロール部分に自前で作っている S2Robot を利用していて、これが汎用的であったのも良かったかな。どれくらいの負荷でテストしたかというと
- 同時実行のクロール設定数: 5
- 1クロール設定のスレッド数: 5
- 1クロール設定の間隔: 1000ミリ秒
というような感じの設定で Fess(Solr込み) を 1 台(Athlon X2 Dual Core BE-2350, Mem 6G)で 4 日半くらいかかりました。長い戦いだった(がんばったな)。
っで、その環境と並行して、もっとハイエンドな環境を想定してテストもしてみた。Fess(クロール専用、Solrなし)を1台、Solrを1台の2台構成。しかも、Fess のクロールデータ保存用のDBはH2でなく、MySQLを利用した。同じ設定で流したら、100万ドキュメントを1日半くらいで処理してた…。速い…。そんな感じで、台数を使えばもっとドキュメント数はいけるだろうね。
引き続き、パフォーマンスを改善をしていくつもりだけど、ひとまず、目標としていたものを達成できたので達成感もあるね~(いやー、よくやった)。っで次は3000万ドキュメントをできるような環境を作りたいな(さすがにこれは1台では目指さないと思うけど)。この3000万は○○gle Mini の上のアプライアンスがマックスの上限値みたいだからそこを目指してみる。
1.2 -> 2.0
次は Fess 1.2 として、リリースしようと思っていたけど、大幅に機能が拡張されているし、2.0 とした方が適切な気がしてきました。Solr 1.4 を適用したら 2.0 にしようと思っていたけど、それは 3.0 にでもしようかな。