私は1年ほどNutchを見ておらず、かなり変化しているように見えます。再クロールに関するドキュメントは明確ではありません。既存のNutchインデックスを更新する最良の方法は何ですか?Nutchインデックスを更新する最良の方法は何ですか?
1
A
答えて
2
このスクリプトは、最初に私のために動作しませんでしたNutchのよくある質問の1、に緩く基づいています。
#!/bin/sh
#
# Automate crawling my site
#
crawldir=./crawl
urldir=./urls
NUTCH_HOME=${NUTCH_HOME:=.}
nutch=$NUTCH_HOME/bin/nutch
# Make sure the crawl directories exist
mkdir -p $crawldir/crawldb $crawldir/segments $crawldir/linkdb
# Inject the initial urls
$nutch inject $crawldir/crawldb $urldir
depth=1
while(true) ; do
echo "beginning crawl at depth $depth"
echo "-generate"
$nutch generate $crawldir/crawldb $crawldir/segments
if [ $? -ne 0 ] ; then
echo "finishing at depth $depth - no more urls"
break
fi
segment=`/bin/ls -rtd $crawldir/segments/*|tail -1`
echo "$nutch fetch $segment"
$nutch fetch $segment
if [ $? -ne 0 ] ; then
echo "fetch failed at depth $depth, deleting segment"
rm -rf $segment
continue;
fi
echo "$nutch updatedb $crawldir/crawldb $segment"
$nutch updatedb $crawldir/crawldb $segment
depth=`expr $depth + 1`
done
echo "$nutch mergesegs $crawldir/MERGEDsegs $crawldir/segments/*"
$nutch mergesegs $crawldir/MERGEDsegs $crawldir/segments/*
if [ $? -eq 0 ] ; then
rm -rf $crawldir/segments/*
mv $crawldir/MERGEDsegs/* $crawldir/segments
rmdir $crawldir/MERGEDsegs
else
echo "Something went wrong"
exit
fi
echo "$nutch invertlinks $crawldir/linkdb -dir $crawldir/segments"
$nutch invertlinks $crawldir/linkdb -dir $crawldir/segments
echo "$nutch index $crawldir/NEWindexes $crawldir/crawldb $crawldir/linkdb $crawldir/segments/*"
$nutch index $crawldir/NEWindexes $crawldir/crawldb $crawldir/linkdb \
$crawldir/segments/*
echo "$nutch dedup $crawldir/NEWindexes"
$nutch dedup $crawldir/NEWindexes
echo "$nutch merge $crawldir/MERGEDindexes $crawldir/NEWindexes"
$nutch merge $crawldir/MERGEDindexes $crawldir/NEWindexes
mv $crawldir/index $crawldir/OLDindexes
mv $crawldir/MERGEDindexes $crawldir/index
0
我々はSolrのとの組み合わせでのNutchを使用しています。私たちのNutchインデックスはapprです。 80 MB conatin arround 5000 Webサイト。これまでのところ、再クロールする最良の方法は、インデックスを削除してゼロから作成することです。
関連する問題
- 1. キューからアクティビティを更新する最良の方法
- 2. 私の更新ループを「スプライス」する最も良い方法は?
- 3. ライブデータベーステーブルを更新するための良い方法は何ですか?
- 4. Django:Webインターフェースを介して複数のモデルインスタンスを同時に更新する最良の方法は何ですか?
- 5. InputStreamを監視する最良の方法は何ですか?
- 6. .flaファイルをバッチコンパイルする最良の方法は何ですか?
- 7. サウンドをファイルにする最良の方法は何ですか?
- 8. RedirectToActionをテストする最良の方法は何ですか?
- 9. srand()をシードする最良の方法は何ですか?
- 10. 列挙をインクリメントする最良の方法は何ですか?
- 11. MVCリポジトリをテストする最良の方法は何ですか?
- 12. CSSを整理する最良の方法は何ですか?
- 13. データベースプロシージャをリファクタリングする最良の方法は何ですか?
- 14. GitHubを検索する最良の方法は何ですか?
- 15. javascriptをテストする最良の方法は何ですか?
- 16. Umbracoを開発する最良の方法は何ですか?
- 17. DALを作成する最良の方法は何ですか?
- 18. データベースをコピーする最良の方法は何ですか?
- 19. Atom Serverをテストする最良の方法は何ですか?
- 20. マインドマップデータを保存する最良の方法は何ですか?
- 21. HTML5ウェブサイトをテストする最良の方法は何ですか?
- 22. ニューラルネットワークをオーバーフィットする最良の方法は何ですか?
- 23. 電子商取引のウェブサイトの更新を処理する最良の方法は何ですか?
- 24. 高速動作のためにJavaFX2 guiを更新する最良の方法は何ですか?
- 25. ポーリングからイベントに変更する最も良い方法は何ですか?
- 26. .NETのMsAccessテーブルを更新する最良の方法
- 27. チェックボックスの先読みを更新する最良の方法
- 28. genericリストの要素を更新する最良の方法
- 29. Nutchのインデックスからコンテンツを読み取る方法は?
- 30. コレクションをロックする最も良い方法は何ですか?