在 nutch 弹性索引器中添加自定义字段和类型

Adding custom fields and types in nutch elastic indexer

我 运行 在 nutch elastic 上测试运行 indexer.I 想添加一些自定义字段和自定义类型名称(而不是 "doc"),它们可以作为参数提供给索引工作。我知道 NutchDocument 是 class ,它负责设置字段名称和元数据,但无法弄清楚 nutch 在哪里创建它的实例并设置值。或者还有其他方法吗?请帮忙

你需要(将新字段添加到 ES 索引中)是编写一个自定义索引过滤器(假设你要添加的字段的值已经被一些解析过滤器从内容中提取,否则你需要一个解析过滤器和索引过滤器)。

在上图中,您可以看到有关索引过滤器在 Nutch 中如何工作的简单图表。也许 this post 会对您有所帮助。最重要的是,您将字段添加到实现 IndexingFilter 接口的索引过滤器中的 NutchDocument class 中。您添加到 NutchDocument 中的字段会由相应的插件自动转换为您的索引后端 (Solr/ES)。

至于改变 type 字段,您需要 extract/add 一个 type 字段到 NutchDocument class,看看 https://github.com/apache/nutch/blob/master/src/plugin/indexer-elastic/src/java/org/apache/nutch/indexwriter/elastic/ElasticIndexWriter.java#L169-L171"doc" 是默认类型,如果您不能提供的话。因此,在您的自定义索引过滤器中,您将添加动态设置 type 字段的逻辑,这将在索引阶段由 ElasticIndexWriter 使用。