在 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
使用。
我 运行 在 nutch elastic 上测试运行 indexer.I 想添加一些自定义字段和自定义类型名称(而不是 "doc"),它们可以作为参数提供给索引工作。我知道 NutchDocument
是 class ,它负责设置字段名称和元数据,但无法弄清楚 nutch 在哪里创建它的实例并设置值。或者还有其他方法吗?请帮忙
你需要(将新字段添加到 ES 索引中)是编写一个自定义索引过滤器(假设你要添加的字段的值已经被一些解析过滤器从内容中提取,否则你需要一个解析过滤器和索引过滤器)。
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
使用。