在使用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”,
    内容:“你好世界”
    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/

    10-09 01:01