【发布时间】:2018-10-26 10:10:29
【问题描述】:
我需要爬取两个网站并将它们作为两个不同的索引或类型索引到 elasticsearch 中。 我正在使用带有 elasticsearch-5.3.3 的 nutch 1.15
我们如何抓取两个不同的站点并在 nutch 的 elasticsearch 中分别索引它们?这可以在单个 nutch 实例中实现吗?
【问题讨论】:
标签: elasticsearch web-crawler nutch
我需要爬取两个网站并将它们作为两个不同的索引或类型索引到 elasticsearch 中。 我正在使用带有 elasticsearch-5.3.3 的 nutch 1.15
我们如何抓取两个不同的站点并在 nutch 的 elasticsearch 中分别索引它们?这可以在单个 nutch 实例中实现吗?
【问题讨论】:
标签: elasticsearch web-crawler nutch
目前在 Nutch 中没有什么可以做文档路由。例如,如果您使用index-jexl-filter,则过滤在文档发送给 Nutch 编写器之前完成。您可以配置多个索引编写器 (2),然后文档将被发送到两个索引编写器。这些写入器可能正在写入不同的索引/文档类型,但所有文档都将以两种索引/文档类型结尾。
也就是说,如果你找到一种在 ES 端进行过滤的方法,你可以配置那些 Index Writers 并将文档路由到它们。然后在摄取时在 ES 中过滤(可能类似于 ES 中的 script,如果它不符合特定要求,则阻止开始摄取文档。但我不能忘记,指出特定的东西现在就这样做。
此外,您可以克隆弹性索引器并对其进行自定义,以便从文档本身中提取type。
编辑
感谢@sebastian-nagel 指出这一点。
我完全错过了 https://nutch.apache.org/apidocs/apidocs-1.15/org/apache/nutch/exchange/jexl/JexlExchange.html 交换,它完全符合您的要求。这样就可以在索引时使用 JEXL 表达式进行文档路由。
【讨论】:
JexlExchange ?。我以为