2016-09-26 25 views
2

面对使用nutch和elasticsearch进行爬网时的一些严重问题。nutch crawled文档elasticsearch映射中面临的问题

我们的应用程序中有两个数据存储引擎。

  1. MySql的

  2. Elasticsearch

可以说我有存储在MySQL数据库中的URL表10页的URL。现在我想在运行时从表中获取这些url并将它们写入seed,txt用于抓取。我已经将所有这些网址写入需要,txt一次。现在我的抓取开始了,然后我将这些文档索引在一个索引中的elasticsearch中(可以说url索引)。但是我想在elasticsearch索引中维护一个引用,以便我可以获取特定url的已抓取详细信息,以便进行分析,因为elasticsearch索引只包含已抓取的数据。例如。

在mysql中我的表结构是:

表网址:

ID网址


1 www.google.com

Elasticsearch索引映射我想要的是:

索引网址:

{ _id: “www.google.com”, 类型: “文档”, 内容: “世界,你好” url_id:1, 。 。 。 }

这里url_id是url列表中被抓取的url的id列的字段值。

我可以为每个url创建单独的索引,但该解决方案并不理想,因为在一天结束时,我将拥有多个索引。那么抓取后如何实现这一点。我是否必须修改弹性搜索索引器?我使用nutch 1.12和elastichsearch 1.7.1。任何帮助将不胜感激。

回答

3

您应该通过url_id在你的种子列表的额外的元数据,并使用urlmeta和索引的元数据的插件,使键/值被传递到出站链接(如有必要),或至少可用于索引。

请参阅Nutch WIKI了解如何索引元标记。

+0

谢谢一个男人。我将url_id与url一起传递并使用了urlmeta插件。最后,这个URL在索引后在elasticsearch中创建url_id字段。现在我可以将我的url表映射到mysql表中到elasticsearch索引。这节省了我很多时间。 – user2354150

+0

@ user2354150你还没有在接受上面标记我的答案。可能最好打开一个新的问题,将使其他人更容易找到它 –

+0

答案接受并提供最佳结果 – user2354150