2012-08-15 38 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