SolrRecord从Nutch添加到Index的时间

问题描述 投票:0回答:1

我正在运行Solr 5.4.1和Nutch 1.11我也使用Apache Nifi,特别是GetSolr处理器。

我知道我的SolrRecord中的tstamp是获取索引中的值的时间。

我遇到的挑战是GetSolr进程在无人值守的NiFi中工作,我需要提供一个日期字段来过滤。如果我使用tstamp,它将仅在第一次填充我的数据流,之后tstamp过滤器排除将来的值,因为它正在查看索引时间,而不是记录被摄入Solr的时间。

所以我的问题是:如何在bin \ nutch索引时在我的SolrRecord中包含一个字段,该字段将包含插入Solr的时间戳,而不是由爬虫提取。

solr apache-nifi nutch hortonworks-data-platform
1个回答
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>
© www.soinside.com 2019 - 2024. All rights reserved.