从 Nutch 将 SolrRecord 添加到索引的时间
Posted
技术标签:
【中文标题】从 Nutch 将 SolrRecord 添加到索引的时间【英文标题】:Time of SolrRecord being added to Index from Nutch 【发布时间】:2016-02-10 05:19:53 【问题描述】:我正在运行 Solr 5.4.1 和 Nutch 1.11 我也在使用 Apache Nifi,尤其是 GetSolr 处理器。
我了解 SolrRecord 中的 tstamp 是获取索引中的值的时间。
我面临的挑战是让 GetSolr 进程在无人值守的 NiFi 中工作,我需要提供一个日期字段来过滤。如果我使用 tstamp,它只会在第一次填充我的数据流,之后 tstamp 过滤器会排除未来值,因为它正在查看索引时间,而不是记录被摄取到 Solr 中的时间。
所以我的问题是:如何在 bin\nutch 索引时在我的 SolrRecord 中包含一个字段,该字段将包含插入 Solr 的时间戳,而不是由爬虫获取。
【问题讨论】:
【参考方案1】:我认为你有两个选择...
您可以在 Solr schema.xml 中添加一个新的日期字段,默认值为 NOW:
<field name="timestamp" type="date" indexed="true" stored="true" default="NOW" multiValued="false"/>
您可以使用 TimestampUpdateProcessorFactory: https://lucene.apache.org/solr/5_4_1/solr-core/org/apache/solr/update/processor/TimestampUpdateProcessorFactory.html
在 solrconfig.xml 中,您可以将其添加到更新链中:
<updateRequestProcessorChain name="add-timestamp-field">
<processor class="solr.TimestampUpdateProcessorFactory">
<str name="fieldName">timestamp</str>
</processor>
</updateRequestProcessorChain>
如果使用更新链,需要启用add-timestamp-field链:
<initParams path="/update/**">
<lst name="defaults">
<str name="update.chain">add-timestamp-field</str>
</lst>
</initParams>
【讨论】:
以上是关于从 Nutch 将 SolrRecord 添加到索引的时间的主要内容,如果未能解决你的问题,请参考以下文章