2012-05-04 8 views
2

現在、ウェブページとそのメタデータのインデックスを作成するためにnutchとsolrを設定しています。 日付がyyyy-mm-ddの形式のメタデータタグがあるため、solr.DateFieldまたはsolr.TrieDateFieldとして機能するために必要な時間形式拡張が失われます。 日付フィールドで日付範囲を使用したいのですが、これらの形式のいずれかで日付範囲を使用しないと機能しません。現在、私の日付は、スキーマ内のテキストとして含まれているnutch-solr:ウェブページのメタデータから日付を正しいSolrフォーマットにフォーマットする

:私は代わりにフィールド定義のためにこれを使用するたびに

<fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/> 
... 
<field name="Date Modified" type="string" stored="true" indexed="true" multiValued="true"/> 

...

<fieldType name="date" class="solr.TrieDateField" omitNorms="true" positionIncrementGap="0"/> 
<field name="Date Modified" type="date" stored="true" indexed="true" multiValued="true"/> 

...私は、このエラーメッセージが表示されます。

2012-05-02 23:45:58,370 WARN mapred.LocalJobRunner - job_local_0029 
org.apache.solr.common.SolrException: ERROR: [doc=http://ec.gc.ca/] Error adding field  'Date Modified'='2011-12-05' 

ERROR: [doc=http://ec.gc.ca/] Error adding field 'Date Modified'='2011-12-05' 

request: http://localhost:8983/solr/update?wt=javabin&version=2 
    at  org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:430) 
    at  org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java :244) 
    at  org.apache.solr.client.solrj.request.AbstractUpdateRequest.process(AbstractUpdateRequest.j ava:105) 
    at org.apache.solr.client.solrj.SolrServer.add(SolrServer.java:49) 
    at org.apache.nutch.indexer.solr.SolrWriter.close(SolrWriter.java:93) 
    at  org.apache.nutch.indexer.IndexerOutputFormat$1.close(IndexerOutputFormat.java:48) 
    at org.apache.hadoop.mapred.ReduceTask.runOldReducer(ReduceTask.java:474) 
    at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:411) 
    at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:216) 
2012-05-02 23:45:58,966 ERROR solr.SolrIndexer - java.io.IOException: Job failed! 

私は別のフォーラムを閲覧しましたが、効果的な解決策が見つかりませんでした。それは私がデータのインポート処理について何かを忘れているかもしれません。 日付フィールドを適切な形式で取得するには、Nutch構成で何かを変更する必要がありますか?

ありがとうございます!すべてのベスト

+1

私はあなたが最初の定義と同じ文字列を持っている間、あなたは日付fieldTypeとして2番目のフィールド定義を意味したと思います。 – javanna

+0

javanna、ありがとう。私はそれを訂正した。 – qlumbus

答えて

1

DateField docsを見てください。日付の正しい形式のいくつかの例が含まれています。これはok:2011-12-05T00:00:00Zです。 Solrに送信する前に、日付をUTCに変換することを忘れないでください。

しかし、あなたの問題は、正しい形式に変換する日付としてこのフィールドのインデックスをnutchに伝える方法です。私はソースコードを見ていましたが、私は箱から出る方法を見つけませんでした。私はあなたがおそらくあなたがプロジェクトにそれを貢献することができるかもしれない、あなたが使用しているプラ​​グインを拡張するいくつかのコードを記述する必要がありますね。

+0

javanna、ありがとう!私はこの文書を見て正しい形式を知っていますが、私はこの方法で自分のフィールドをどのようにフォーマットするのか分かりません。私は索引付けしたWebページの日付形式には何の影響もありません。 nutchでフェッチしてsolrにマッピングし、要求ハンドラを含むスキーマ定義をyyyy-mm-ddの形式をyyyy-mm-ddThh:mm:ssZに調整できますか?ありがとう! – qlumbus

+1

@qlumbus良い点!これらの特定のメタデータを使用するようナンチにどのように伝えてもらえますか?それは設定だけですか? – javanna

+0

@javenna nutch-site.xmlでは、私はindex-metatagsプラグインを使用して、抽出するメタタグを指定します。クール ' – qlumbus

関連する問題