2012-08-15 63 views
0

我在solr中使用RSS DIH來索引各種RSS提要。我面臨的問題是日期字段。 RSS中的pubDate返回不是Solr期望的格式,因此當我使用此rss-data-config.xml文件啓動我的Solr時,我得到了異常。有人可以告訴我如何將rss日期轉換爲solr預期日期格式在rss-data-config.xml文件中?在Solr中使用DIH進行導入時,如何將RSS feed中的pubDate轉換爲?

在Schema.xml中,我將pubDate定義爲日期。

這裏是我的RSS數據-config.xml中的樣子:

<dataConfig> 
    <dataSource type="URLDataSource" name="dsurl"/> 
    <dataSource type="JdbcDataSource" name="dsdb" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/HCDACoreDB" user="root" password="[email protected]"/> 
    <document> 
     <entity name="rssimports" 
       pk="link" 
       url="${dataimporter.request.feedurl}" 
       processor="XPathEntityProcessor" 
       forEach="/rss | /rss/channel | /rss/channel/item" 
       transformer="HTMLStripTransformer" 
       dataSource="dsurl"> 

      <field column="source" xpath="/rss/channel/title" commonField="true" dataSource="dsurl"/> 
      <field column="source-link" xpath="/rss/channel/link" commonField="true" dataSource="dsurl"/> 
      <field column="Source-desc" xpath="/rss/channel/description" commonField="true" dataSource="dsurl"/> 

      <field column="title" xpath="/rss/channel/item/title" dataSource="dsurl"/> 
      <field column="link" xpath="/rss/channel/item/link" dataSource="dsurl"/> 
      <field column="description" xpath="/rss/channel/item/description" stripHTML="true" dataSource="dsurl"/> 
     <field column="pubDate" xpath="/rss/channel/item/pubDate" dataSource="dsurl"/> 

      <field column='${dataimporter.functions.formatDate('${dataimporter.request.pubDate}', 'EEE, dd MMM YYYY HH:mm:ss z')}' name="pubDate"/> 
      <field column="guid" xpath="/rss/channel/item/guid" dataSource="dsurl"/> 
      <field column="content" xpath="/rss/channel/item/content" dataSource="dsurl"/> 
      <field column="author" xpath="/rss/channel/item/creator" dataSource="dsurl"/> 


     <entity name="feedcategory" 
       query="select category.CategoryName from feeds, category where feeds.FeedUrl = '${dataimporter.request.feedurl}' AND feeds.FeedCategory = category.CategoryId" 
       processor="SqlEntityProcessor" 
       dataSource="dsdb"> 
      <field column="CategoryName" name="category" dataSource="dsdb"/> 
     </entity> 
     </entity> 
    </document> 
</dataConfig> 

請幫助。

回答

2

您想要設置DateFormatTransformer來處理獲取日期到solr所期望的格式。

http://wiki.apache.org/solr/DataImportHandler#DateFormatTransformer

+0

謝謝,它解決了我是越來越異常,並能夠索引文檔。我現在要檢查是否NOW或NOW-1DAY類型的pubDate過濾工作,這就是我想要做的。再次感謝你。 – Jayku 2012-08-15 16:24:14

+0

沒問題,很樂意幫忙。 – 2012-08-15 19:14:37

+0

oops以格式異常我得到的是:org.apache.solr.common.SolrException:錯誤:[doc = http://rss.cnn.com/~r/rss/cnn_allpolitics/~3/R2L1CPDPBJU/]錯誤添加字段 'pubDate '='Wed,15 Aug 2012 14:11:27 EDT'可能是什麼問題? – Jayku 2012-08-15 22:36:08