我应该使用Nutch 1x或2x与Elasticsearch

时间:2018-01-19 15:47:14

标签: elasticsearch nutch

我一直在使用Nutch 1.10将数据索引到Elasticsearch几年。不久之前,我决定开始升级到Nutch和ES的新版本。

经过大量谷歌搜索后,似乎人们越来越多地使用Nutch 2.x,尽管看起来Nutch 1.x速度更快,开发更活跃。似乎在Nutch 1.10之后,使用Nutch 1x与ES变得更加困难。

似乎BIG的不同之处在于您可以使用Nutch 2.x将已爬网数据存储到不同的数据库中。似乎Nutch 1.x非常擅长快速爬行和爬行,但就是这样。

那么哪个版本的Nutch最适合与ES v2 +或ES v5x一起使用?

2 个答案:

答案 0 :(得分:2)

如果你正在运行Nutch进行生产,那么最好坚持使用Nutch 1.x,它有更多的功能,正如你所说的那样表现优于2.x.至于ES的兼容性,我认为没有太大区别。

Nutch 1.x实际上附带了与ES 5.3的兼容性,这意味着如果您下载.zip文件(或直接从源代码构建),那么您将获得v5.3的ES客户端库。

有一些文档解释了如何升级https://github.com/apache/nutch/blob/master/src/plugin/indexer-elastic/howto_upgrade_es.txt。当然,升级的这条“路径”取决于ES客户端库如何不改变其公共API(可能发生),此时PR将更受欢迎。

Nutch 2.x略微落后(仍然支持ES 1.x,2.x)但它有类似的升级文档,受到与以前相同的警告。

另一种选择是使用不依赖于ES客户端库的indexer-elastic-rest插件,而是使用来自Searchly(https://github.com/searchbox-io/Jest)的Jest库,这意味着将使用REST发送文档API而不是使用ES客户端库支持的二进制协议。

在任何情况下,Nutch 1.x都会得到更积极的维护,你可以看到它比2.x分支更新。

答案 1 :(得分:1)

去Nutch 1.X,我使用nutch 1.14和ES 5.6.0使用 indexer-elastic-rest ,它的无缝工作没有任何问题。