Indexing 向NutchDocument动态添加字段

Indexing 向NutchDocument动态添加字段,indexing,web-crawler,nutch,Indexing,Web Crawler,Nutch,我正在使用带有弹性搜索的Nutch 1.12,我想在NutchDocument中动态添加一个字段 目前,我可以将静态字段值添加到NutchDocument,并能够将其索引到弹性搜索 以下是我的索引过滤器的代码片段: public class CustomIndexFilter implements IndexingFilter { private Configuration conf; public Configuration getConf() { retu

我正在使用带有弹性搜索的Nutch 1.12,我想在
NutchDocument
中动态添加一个字段

目前,我可以将静态字段值添加到
NutchDocument
,并能够将其索引到弹性搜索

以下是我的索引过滤器的代码片段:

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
是在解析之后创建的。因此,在此之前需要提供字段值(不知道应该在哪里提供)。正在为此寻找解决方法


任何帮助都将不胜感激:)

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

我将建议解决方法。您可以使用NutchRESTAPI为爬网运行创建带有自定义选项的自定义配置。然后阅读自定义索引器插件中的特定配置。通过这种方式,您可以在从conf.HTH读取字段后,通过设置NutchDocument中的字段来控制索引内容