0

solrでRSSDIHを使用して、さまざまなrssフィードにインデックスを付けています。私が直面している問題は日付フィールドにあります。RSSで返されるpubDateは、Solrが期待する形式ではないため、このrss-data-config.xmlファイルを使用してSolrを起動すると例外が発生します。rss-data-config.xmlファイルでrss日付をsolrの期待される日付形式に変換する方法を教えてもらえますか?

Schema.xmlで、pubDateを日付として定義しました。

これが私のrss-data-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="CDA@318"/>
    <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>

plsは役立ちます。

4

1 に答える 1

2

DateFormatTransformer を設定して、solr が期待する形式への日付の取得に対処する必要があります。

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

于 2012-08-15T15:33:42.133 に答える