在使用nutch和elasticsearch进行抓取时遇到一些严重问题。
我们的App中有两个数据存储引擎。
MySQL的
Elasticsearch
让我说我有10个url存储在mysql db的urls表中。现在我想在运行时从表中获取这些URL并将它们写入种子,txt进行爬网。我已经把所有这些网址都写成了需要,txt一气呵成。现在我的爬行开始,然后我将索引中的这些文档索引在弹性搜索中(比如url索引)。但我想在elasticsearch索引中维护一个引用,以便我可以获取特定URL的已爬网详细信息以用于分析目的,因为elasticsearch索引仅包含已爬网数据。对于前。
我在mysql中的表结构是:
表网址:
id url
1 www.google.com
我想要的弹性搜索索引是:
索引网址:
{ _id:" www.google.com", 输入:" doc", 内容:" Hello world" url_id:1, 。 。 。 }
此处url_id是urls表中已抓取网址的id列的字段值。
我可以为每个网址创建单独的索引但该解决方案并不理想,因为在一天结束时我会有多个索引。那么爬行后如何实现这一目标。我是否必须修改弹性搜索索引器。我正在使用nutch 1.12和elastichsearch 1.7.1。非常感谢任何帮助。
答案 0 :(得分:3)
您应该将url_id作为种子列表中的其他元数据传递,并使用urlmeta和index-metadata插件,以便将键/值传递给外链(如果需要)或至少可用于索引。 / p>
有关如何索引元标记的说明,请参阅Nutch WIKI。