如何定制ApacheNutch2.3生成步骤

wgxvkvu9  于 2021-06-01  发布在  Hadoop
关注(0)|答案(2)|浏览(327)

我希望nutch根据我自己的规则选择特定的url。此步骤在生成时完成。我知道如何编写解析器/索引器插件。但如何做到这一点,在生成时间。我的nutch版本是2.3系列

ac1kyiln

ac1kyiln1#

nutch生成器并不是nutch的扩展点,所以您无法编写插件来定制它。然而,没有什么能阻止您用自己的逻辑编写自己的生成器。
您需要调整 bin/nutch 以及 bin/crawl 脚本,以便调用自己的生成器而不是默认的生成器。请记住,nutch的其他部分依赖于生成器实现的某些部分( SegmentMerger 例如)。如果您自定义这些部分,那么还需要更新一些其他类。
发电机使用 ScoringFilter.generatorSortValue() 方法来决定返回哪些元素。所以,这是一个不需要更换发电机的替代方案。
顺便说一句,这样做并不完全罕见,我似乎有些客户需要定制发电机。

axr492tv

axr492tv2#

正如jorge所建议的,您可以编写一个scoringfilter,根据您自己的逻辑将分数分配给页面,并在生成步骤中基于该逻辑进行过滤。或者,如果碰巧您的选择规则可以仅基于url来确定,那么您可以使用一个定制的url normaliser,它的作用域是generate(或者不管值是什么),该作用域将url重写为url过滤器将丢弃的内容。作为生成步骤的一部分,您需要激活过滤。这是一个丑陋的黑客。
nutch2.x真的很笨拙,我不确定你能不能基于原始表的过滤器创建一个表的副本。
你用什么gora后端?
stormcrawler在这方面更加灵活,我们最近添加了一种机制,用于在喷口级别过滤URL,这正是您所需要的。你可以在nutch2.x中做类似的事情,但这可能意味着在gora中也要做一些改变。

相关问题