Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何定制Apache Nutch 2.3生成步骤_Java_Hadoop_Web Crawler_Nutch - Fatal编程技术网

Java 如何定制Apache Nutch 2.3生成步骤

Java 如何定制Apache Nutch 2.3生成步骤,java,hadoop,web-crawler,nutch,Java,Hadoop,Web Crawler,Nutch,我希望Nutch根据我自己的规则选择特定的URL。此步骤在生成时完成。我知道如何编写解析器/索引器插件。但是如何在生成时执行它。我的Nutch版本是2.3系列Nutch生成器并不是Nutch中的一个扩展点,因此您无法编写插件来定制它。然而,没有什么能阻止您用自己的逻辑编写自己的生成器 您需要调整bin/nutch和bin/crawl脚本,以便调用您自己的生成器,而不是默认的生成器。请记住,Nutch的某些其他部分依赖于生成器实现的某些部分(例如,segmentmerge)。如果自定义这些部分,则

我希望Nutch根据我自己的规则选择特定的URL。此步骤在生成时完成。我知道如何编写解析器/索引器插件。但是如何在生成时执行它。我的Nutch版本是2.3系列

Nutch生成器并不是Nutch中的一个扩展点,因此您无法编写插件来定制它。然而,没有什么能阻止您用自己的逻辑编写自己的生成器

您需要调整
bin/nutch
bin/crawl
脚本,以便调用您自己的生成器,而不是默认的生成器。请记住,Nutch的某些其他部分依赖于生成器实现的某些部分(例如,
segmentmerge
)。如果自定义这些部分,则还需要更新其他一些类

生成器在决定返回哪些元素时使用
ScoringFilter.generatorSortValue()
方法。因此,这是一种不需要更换发电机的替代方案


旁注,这种情况并不少见,我发现有些客户需要定制生成器。

Nutch生成器实际上不是Nutch中的扩展点,因此您无法编写插件来定制它。然而,没有什么能阻止您用自己的逻辑编写自己的生成器

您需要调整
bin/nutch
bin/crawl
脚本,以便调用您自己的生成器,而不是默认的生成器。请记住,Nutch的某些其他部分依赖于生成器实现的某些部分(例如,
segmentmerge
)。如果自定义这些部分,则还需要更新其他一些类

生成器在决定返回哪些元素时使用
ScoringFilter.generatorSortValue()
方法。因此,这是一种不需要更换发电机的替代方案


旁注,这种情况并不罕见,我发现一些客户需要定制生成器。

正如Jorge所建议的,您可以编写一个scoringfilter,根据您自己的逻辑为页面分配分数,并在生成步骤中基于此进行筛选。或者,如果碰巧您的选择规则可以仅基于URL来确定,那么您可以使用一个定制的URL规范化器,该规范化器的作用域为generate(或任意值),该规范化器将URL重写为URL过滤器将丢弃的内容。作为生成步骤的一部分,您需要激活筛选。这是一个丑陋的黑客

Nutch2.x真的很笨拙,我不确定您是否可以基于原始表的过滤器创建表的副本

你使用什么Gora后端


StormCrawler在这方面要灵活得多,我们最近添加了一个,这正是您需要的。您可以在Nutch 2.x中执行类似的操作,但这可能意味着在GORA中也要进行更改。

正如Jorge所建议的,您可以编写一个scoringfilter,根据自己的逻辑为页面分配分数,并在生成步骤中基于此进行过滤。或者,如果碰巧您的选择规则可以仅基于URL来确定,那么您可以使用一个定制的URL规范化器,该规范化器的作用域为generate(或任意值),该规范化器将URL重写为URL过滤器将丢弃的内容。作为生成步骤的一部分,您需要激活筛选。这是一个丑陋的黑客

Nutch2.x真的很笨拙,我不确定您是否可以基于原始表的过滤器创建表的副本

你使用什么Gora后端

StormCrawler在这方面要灵活得多,我们最近添加了一个,这正是您需要的。你可以在Nutch2.x中做类似的事情,但这可能意味着在GORA中也要做一些改变