只生成未获取的 url 而不是评分的 Nutch 2.3

Generate only unfetched urls instead of scored Nutch 2.3

在 Nutch 2.x 中有什么方法可以只生成未获取的 url 而不是基于分数吗?

嗯,对于 Nutch 1.x,您可以使用自 Nutch 1.12 以来提供的 jexl 支持(我认为):

$ bin/nutch generate -expr "status == db_unfetched" 

使用此命令,您可以确保只有具有 db_unfetched 状态的 URL 才会被考虑用于生成您要抓取的片段。

此功能在 2.x 分支上仍然不可用,但编写自定义 GeneratorJob 可以解决问题。

另一方面,由于生成器 Job 已经在考虑分数来对要获取的 URL 列表进行排序,也许更简单的方法是编写自定义 ScoringFilter.

例如,如果您看一下:https://github.com/apache/nutch/blob/2.x/src/java/org/apache/nutch/scoring/ScoringFilter.java#L69-L81 ScoringFilter 已经提供了一个 generatorSortValue 方法,仅用于为生成器作业生成评分值,因此您可以编写自己的方法来提升那些具有未获取状态的 URL。