在使用nutch和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”,
内容:“你好世界”
url_id:1,
。
。
。
}
此处url_id是urls表中已爬网url的id列的字段值。
我可以为每个URL创建单独的索引,但是该解决方案并不理想,因为最终我将拥有多个索引。那么如何在爬网之后实现这一目标。我是否需要修改 flex 搜索索引器。我正在使用nutch 1.12和elastichsearch 1.7.1。任何帮助将不胜感激。
最佳答案
您应该将url_id作为附加元数据传递到种子列表中,并使用urlmeta和index-metadata插件,以便将键/值传递到出站(如有必要)或至少可用于索引。
有关如何索引元标记的说明,请参见Nutch WIKI。
关于mysql - 坚果爬网文档的Elasticsearch映射中面临的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39697398/