3

現在、ウェブページとそのメタデータにインデックスを付けるために、nutch と solr を構成しています。yyyy-mm-dd 形式の日付を含むメタデータ タグがあるため、solr.DateField または solr.TrieDateField として機能するために必要な時間形式の拡張子がありません。日付フィールドで日付範囲を使用したいのですが、これらの形式のいずれかでないと機能しませんよね?

現在、私の日付はスキーマにテキストとして含まれています:

<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 構成で何かを変更する必要がありますか?

どうもありがとう!

ではごきげんよう

4

1 に答える 1

1

DateFieldドキュメントをご覧ください。日付の正しい形式の例がいくつか含まれています。これで問題ありません: 2011-12-05T00:00:00Z. Solr に送信する前に、日付を UTC に変換することを忘れないでください。

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

于 2012-05-04T09:33:58.570 に答える