2009-03-12 10 views

答えて

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サイト。これまでのところ、再クロールする最良の方法は、インデックスを削除してゼロから作成することです。

関連する問題