【问题标题】:Time of SolrRecord being added to Index from Nutch从 Nutch 将 SolrRecord 添加到索引的时间
【发布时间】: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 的时间戳,而不是由爬虫获取。

【问题讨论】:

    标签: solr apache-nifi nutch hortonworks-data-platform


    【解决方案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>
    

    【讨论】:

      猜你喜欢
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-03
      • 2017-05-22
      • 1970-01-01
      • 1970-01-01
      • 2011-04-29
      相关资源
      最近更新 更多