Hi @ all,
I'd like to turn Nutch into an focused / topical crawler. It's a
part of my final year thesis. Further, I'd like that others can
contribute from my work. I started to analyze the code and think
that I found the right peace of code. I just wanted to know if I am
on the right track. I think the right peace of code to implement a
decision to fetch further is in the method output of the Fetcher
class every time we call the collect method of the OutputCollector
object.
private ParseStatus output(Text key, CrawlDatum datum, Content content,
ProtocolStatus pstatus, int status) {
...
output.collect(...);
...
}
Would you mind to let me know the the best way to turn this decision
into an plugin? I was thinking to go a similar way like the scoring
filters. Thanks in advance.
Don't have the code in front of me right now, but we did something
like this for a focused tech pages crawl with Krugle a few years
back. Our goal was to influence the OPIC scores to ensure that pages
we thought were likely to be "good" technical pages got fetched
sooner.
Assuming you're using the scoring-opic plugin, then you'd create a
custom ScoringFilter that gets executed after the scoring-opic plugin.
But the actual process of hooking every up was pretty complicated and
error prone, unfortunately. We had to define our own keys for storing
our custom scores inside of the parse_data Metadataa, the content
Metadata, and the CrawlDB Metadata.
And we had to implement following methods for our scoring plugin:
setConf()
injectScore()
initialScore();
generateSortValue();
passScoreBeforeParsing();
passScoreAfterParsing();
shouldHarvestOutlinks();
distributeScoreToOutlink();
updateDbScore();
indexerScore();
-- Ken
--
Ken Krugler
+1 530-210-6378