2012-05-04 2 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

첫 번째 정의와 같은 문자열이있는 동안 두 번째 필드 정의를 날짜 필드 유형으로 생각했다고 생각합니다. – javanna

+0

javanna, 고마워. 나는 그것을 바로 잡았다. – qlumbus

답변

1

DateField docs에서보세요. 여기에는 날짜에 대한 올바른 형식의 몇 가지 예가 들어 있습니다. 확인 : 2011-12-05T00:00:00Z이어야합니다. Solr에게 보내기 전에 날짜를 UTC로 변환하는 것을 잊지 마십시오.

하지만 문제는 nutch에게이 필드를 올바른 형식으로 변환하는 날짜로 색인화하는 방법에 더 가깝습니다. 소스 코드를 살펴 봤지만 상자에서 벗어난 방법을 찾지 못했습니다. 아마 당신이 사용하는 플러그인을 확장, 아마도 당신이 다시 프로젝트에 기여할 수있는 몇 가지 코드를 작성해야 겠군.

+0

javanna, 감사합니다! 이 문서를보고 올바른 형식을 알고 있지만이 방법으로 필드를 형식화하는 방법을 모르겠습니다. 나는 색인을 붙이는 웹 페이지에 날짜 형식에 영향을 미치지 않는다. 프로세스에서 nutch를 가져 오는 과정에서 solr 및 요청 핸들러를 포함하는 스키마 정의에 매핑하면 yyyy-mm-dd 형식을 yyyy-mm-ddThh : mm : ssZ로 조정할 수 있습니까? 감사! – qlumbus

+1

@qlumbus 좋은 지적입니다! nutch에게 특정 메타 데이터를 사용하는 방법에 대해 물어볼 수 있습니까? 구성 만 있습니까? – javanna

+0

@javenna nutch-site.xml에서 나는 index-metatags 플러그인을 사용하고 추출 할 메타 태그를 지정합니다. ' metatags.names 날짜 ' – qlumbus

관련 문제