我在nutch弹性索引器上运行测试运行。我想添加一些自定义字段和自定义类型名(而不是" doc"),可以作为索引作业的参数。我理解 NutchDocument
是负责设置字段名称和元数据的类,但无法确定nutch创建此实例的位置并设置值。或者还有其他办法吗?请帮忙
答案 0 :(得分:3)
您需要(将新字段添加到ES索引中)是编写自定义索引过滤器(假设您要添加的字段的值已经通过某些解析过滤器从内容中提取,否则您&# 39; ll需要一个解析过滤器和索引过滤器)。
在上一张图片中,您可以看到有关索引过滤器如何在Nutch中工作的简单图表。或许this post可以帮到你。底线是您在实现NutchDocument
接口的索引过滤器中的IndexingFilter
类中添加字段。您添加到NutchDocument
中的这些字段会被相应的插件自动转换为您的索引后端(Solr / ES)。
至于在type
字段中进行操作,您需要在type
课程中提取/添加NutchDocument
字段,请查看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
使用。