我正在运行Solr 5.4.1和Nutch 1.11我也使用Apache Nifi,特别是GetSolr处理器。
我知道我的SolrRecord中的tstamp是获取索引中的值的时间。
我遇到的挑战是GetSolr进程在无人值守的NiFi中工作,我需要提供一个日期字段来过滤。如果我使用tstamp,它将仅在第一次填充我的数据流,之后tstamp过滤器排除将来的值,因为它正在查看索引时间,而不是记录被摄入Solr的时间。
所以我的问题是:如何在bin \ nutch索引时在我的SolrRecord中包含一个字段,该字段将包含插入Solr的时间戳,而不是由爬虫提取。
我想你会有两种选择......
您可以在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>