【问题标题】:Dynamically add fields to NutchDocument向 NutchDocument 动态添加字段
【发布时间】:2016-11-23 09:43:06
【问题描述】:

我正在使用带有 Elastic Search 的 Nutch 1.12,我想动态添加一个字段到 NutchDocument

目前,我可以将静态字段值添加到 NutchDocument 并能够将其索引到 Elastic Search。

这是我的索引过滤器的代码 sn-p:

public class CustomIndexFilter implements IndexingFilter {

    private Configuration conf;

    public Configuration getConf() {
        return conf;
    }

    public void setConf(Configuration conf) {
        this.conf = conf;
    }

    @Override
    public NutchDocument filter(NutchDocument doc, Parse parse, Text url, CrawlDatum datum, Inlinks inlinks) {
        String content = parse.getText();
        doc.add("pageLength", content.length());
        return doc;
    }
}

我认为NutchDocument是解析后创建的。所以,在此之前需要提供字段值(不知道我应该在哪里提供这个)。寻求解决方法。

任何帮助将不胜感激:)

【问题讨论】:

    标签: indexing web-crawler nutch


    【解决方案1】:

    我会为此建议一个解决方法。您可以使用 Nutch REST api 为爬网运行创建带有自定义选项的自定义配置。然后在您的自定义索引器插件中读取该特定配置。这样,您可以在从 conf 读取它们后,通过设置 NutchDocument 中的字段来控制要索引的内容。高温

    【讨论】:

      【解决方案2】:

      NutchDocument 是在索引步骤中创建的,并且如您所见,由 IndexingFilters 修改。后者通常使用来自解析的元数据,但字段本身主要由 IndexingFilters 创建(一些由主索引代码创建)。有许多插件允许您根据配置生成字段,例如索引元数据或索引静态。

      【讨论】:

        猜你喜欢
        • 2012-06-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-25
        • 2023-03-24
        • 1970-01-01
        • 2012-08-17
        • 1970-01-01
        相关资源
        最近更新 更多