在使用nutch和elasticsearch进行爬网时面临一些严重的问题。
我们的应用程序中有两个数据存储引擎。
的MySQL
elasticsearch
可以说我在mysql db的urls表中存储了10个url。现在,我想在运行时从表中获取这些url,并将其写入seed.txt以进行爬网。我已经将所有这些网址一次性写入了txt。现在,我开始抓取,然后将这些文档在elasticsearch内的索引中索引(可以说是URL索引)。但是我想在Elasticsearch索引中维护一个引用,以便我可以获取特定URL的已爬网详细信息以进行分析,因为Elasticsearch索引仅包含已爬网数据。对于前。
我在mysql中的表结构是:
表格网址:
网址
1 www.google.com
我想要的Elasticsearch索引映射是:
索引网址:
{_id:“ www.google.com”,键入:“ doc”,内容:“ Hello world” url_id:1,。。。}
此处url_id是urls表中已爬网url的id列的字段值。
我可以为每个URL创建单独的索引,但是该解决方案并不理想,因为最终我将拥有多个索引。那么如何在爬网之后实现这一目标。我是否需要修改elasticsearch索引器。我正在使用nutch 1.12和elastichsearch 1.7.1。任何帮助将不胜感激。
您应该在种子列表中将url_id作为附加元数据传递,并使用urlmeta和index- metadata插件,以便将键/值传递到出站(如有必要)或至少可用于索引。
有关如何索引元标记的说明,请参见Nutch WIKI。