0

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

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

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

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

4

1 回答 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>
于 2016-02-14T05:42:45.203 回答