elasticsearch - 我应该在 Elasticsearch 中使用 Nutch 1x 还是 2x

标签 elasticsearch nutch

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

经过大量的谷歌搜索,似乎人们越来越多地使用 Nutch 2.x,尽管 Nutch 1.x 似乎更快并且正在更积极的开发中。似乎在 Nutch 1.10 之后,使用 Nutch 1x 和 ES 变得更加困难。

似乎最大的不同是您可以使用 Nutch 2.x 将爬取的数据存储到不同的数据库中。看起来 Nutch 1.x 真的很擅长爬行和快速爬行,但仅此而已。

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

最佳答案

如果您正在运行 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 客户端库在不改变其公共(public) API 的情况下(这可能会发生),此时 PR 将非常受欢迎。

Nutch 2.x 有点落后(仍然提供对 ES 1.x、2.x 的支持),但它有一个类似的升级文档,但受到与以前相同的警告。

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

无论如何,Nutch 1.x 维护得更加积极,正如您所见,它比 2.x 分支更新得更多。

关于elasticsearch - 我应该在 Elasticsearch 中使用 Nutch 1x 还是 2x,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48344751/

相关文章:

elasticsearch - 如何从ES查询中了解ES索引?

java - 如何获取使用 Java API 客户端 (7.16) 构建的 ElasticSearch 查询/请求的 json 表示形式?

hadoop - 在 Amazon Web Services 和 Local 上集成 Solr + Hadoop 和 Nutch + Hbase

java - 在 Eclipse 中运行 Nutch - 缺少构建文件夹

hadoop - 在hadoop上探索坚果

hadoop - Windows 中的 Nutch 1.14 给出异常 java.lang.UnsatisfiedLinkError : org. apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z

php - 子字符串上的elasticsearch聚合

elasticsearch - ELK部署; CPU,内存,磁盘

java - 如何使用 java api 执行 BULK UpdateByQuery - Elasticsearch 5.x

php - 将爬取的数据和mysql数据放在Solr中