2013-08-01 3 views
0

SOLR을 처음 사용했습니다. DataImporter를 사용하여 색인 생성을 위해 MySQL 레코드를 가져옵니다. 가져 오기는 작동하지만 0 개의 문서가 만들어집니다. 내의 schema.xml 파일에 다음SOLR mysql DataImport 누락 필수 uniqueKey 필드 : id

<dataConfig> 
<dataSource type="JdbcDataSource" driver="org.gjt.mm.mysql.Driver" url="jdbc:mysql://localhost/gartner" user="" password="" batchSize="-1" /> 
<document name="inquiries"> 
    <entity name="inquiry_data" query="SELECT * FROM research_srv_req"> 
     <field column="reference_id" name="reference_id" /> 
     <field column="type" name="type" /> 
     <field column="sub_type" name="sub_type" /> 
     <field column="subject" name="inquiry_subject" /> 
     <field column="advice" name="advice" /> 
     <field column="client_question" name="client_question" /> 
     <field column="decision_stage_desc" name="decision_stage_desc" /> 
     <field column="acct_name" name="acct_name" /> 
     <field column="acct_sic_type" name="acct_sic_type" /> 
     <field column="acct_sic_sub_type" name="acct_sic_sub_type" /> 
     <field column="enterprise_sic_type" name="enterprise_sic_type" /> 
     <field column="enterprise_sic_sub_type" name="enterprise_sic_sub_type" /> 
     <field column="client_job_title" name="client_job_title" /> 
    </entity> 
</document> 

내가 추가 : 다음과 같이

org.apache.solr.common.SolrException: Document is missing mandatory uniqueKey field: id

내 데이터-config.xml에 보이는 : 나는 다음과 같은 오류를보고 있어요

<field name="reference_id" type="int" indexed="true" stored="true" required="true" multiValued="false" /> 
<field name="type" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
<field name="sub_type" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
<field name="inquiry_subject" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
<field name="advice" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
<field name="client_question" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
<field name="decision_stage" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
<field name="acct_name" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
<field name="acct_sic_type" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
<field name="acct_sic_sub_type" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
<field name="enterprise_sic_type" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
<field name="enterprise_sic_sub_type" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
<field name="client_job_title" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 

원본 schema.xml에도 다음 줄이 있습니다.

(210)
<uniqueKey>id</uniqueKey> 
내가 ID를 내 데이터베이스에서 고유 열입니다,하지만 SOLR은 다음 스택 덤프와로드에 실패하는 REFERENCE_ID로 변경 시도

: 내가 잘못 뭐하는 거지

message {msg=SolrCore 'collection1' is not available due to init failure: Error initializing QueryElevationComponent.,trace=org.apache.solr.common.SolrException: SolrCore 'collection1' is not available due to init failure: Error initializing QueryElevationComponent. at org.apache.solr.core.CoreContainer.getCore(CoreContainer.java:860) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:251) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:158) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Unknown Source) Caused by: org.apache.solr.common.SolrException: Error initializing QueryElevationComponent. at org.apache.solr.core.SolrCore.(SolrCore.java:835) at org.apache.solr.core.SolrCore.(SolrCore.java:629) at org.apache.solr.core.CoreContainer.createFromLocal(CoreContainer.java:622) at org.apache.solr.core.CoreContainer.create(CoreContainer.java:657) at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:364) at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:356) at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ... 1 more Caused by: org.apache.solr.common.SolrException: Error initializing QueryElevationComponent. at org.apache.solr.handler.component.QueryElevationComponent.inform(QueryElevationComponent.java:240) at org.apache.solr.core.SolrResourceLoader.inform(SolrResourceLoader.java:601) at org.apache.solr.core.SolrCore.(SolrCore.java:830) ... 13 more Caused by: java.lang.NumberFormatException: For input string: "MA147LL/A" at java.lang.NumberFormatException.forInputString(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at org.apache.solr.schema.TrieField.readableToIndexed(TrieField.java:387) at org.apache.solr.schema.TrieField.readableToIndexed(TrieField.java:378) at org.apache.solr.handler.component.QueryElevationComponent$ElevationObj.(QueryElevationComponent.java:136) at org.apache.solr.handler.component.QueryElevationComponent.loadElevationMap(QueryElevationComponent.java:309) at org.apache.solr.handler.component.QueryElevationComponent.inform(QueryElevationComponent.java:223) ... 15 more ,code=500} description The server encountered an internal error ({msg=SolrCore 'collection1' is not available due to init failure: Error initializing QueryElevationComponent.,trace=org.apache.solr.common.SolrException: SolrCore 'collection1' is not available due to init failure: Error initializing QueryElevationComponent. at org.apache.solr.core.CoreContainer.getCore(CoreContainer.java:860) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:251) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:158) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Unknown Source) Caused by: org.apache.solr.common.SolrException: Error initializing QueryElevationComponent. at org.apache.solr.core.SolrCore.(SolrCore.java:835) at org.apache.solr.core.SolrCore.(SolrCore.java:629) at org.apache.solr.core.CoreContainer.createFromLocal(CoreContainer.java:622) at org.apache.solr.core.CoreContainer.create(CoreContainer.java:657) at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:364) at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:356) at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ... 1 more Caused by: org.apache.solr.common.SolrException: Error initializing QueryElevationComponent. at org.apache.solr.handler.component.QueryElevationComponent.inform(QueryElevationComponent.java:240) at org.apache.solr.core.SolrResourceLoader.inform(SolrResourceLoader.java:601) at org.apache.solr.core.SolrCore.(SolrCore.java:830) ... 13 more Caused by: java.lang.NumberFormatException: For input string: "MA147LL/A" at java.lang.NumberFormatException.forInputString(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at org.apache.solr.schema.TrieField.readableToIndexed(TrieField.java:387) at org.apache.solr.schema.TrieField.readableToIndexed(TrieField.java:378) at org.apache.solr.handler.component.QueryElevationComponent$ElevationObj.(QueryElevationComponent.java:136) at org.apache.solr.handler.component.QueryElevationComponent.loadElevationMap(QueryElevationComponent.java:309) at org.apache.solr.handler.component.QueryElevationComponent.inform(QueryElevationComponent.java:223) ... 15 more ,code=500}) that prevented it from fulfilling this request.

를?

답변

3

UniqueKey는 문자열이어야합니다. 당신은 그것을 int로 만들려고했습니다. 유형을 reference_id으로 변경하여 문자열 및 다시 색인화하십시오. 당신의 schema.xml에 가기 전에

+0

빙고를하는 데 도움이

희망을 실행합니다. 그거였다. 그것은 int를 좋아하지 않았습니다.String으로 변경하면 모든 것이 잘 동작합니다. 감사. – jamas

1

당신은 테이블의 고유 ID와 같은 필드 이름을 지정하여 데이터-config.xml 파일에서이 솔루션

1)이 분야

required="true" 속성을 제거합니다. 나는 당신의 테이블 REFERENCE_ID에 맞춰 이

<field column="reference_id" name="id" /> 

지금 당신의 schema.xml로 이동이 키 워드 필드 이름을 검색 아래와 같이 ID에 해당 필드의 고유

<field column="reference_id" name="reference_id" /> 

변경 이름 속성입니다 = "id" 이 있으면 해당 속성을 확인/추가하십시오 (필수 입력 필수). required=true 다른 필드는 제거하십시오.

키 워드 필드 이름 = "아이디"이 다음 당신이 가서 여기

<field name="id" type="string" indexed="true" stored="true" required="true"></field> 

아래와 같이 새로 생성하고 다시 시작하고

이 실행 존재하지 않는 경우) 발견 키워드 필드 명 = "ID", 존재하는 경우, 그 필드 자체를 제거 또한 태그 ID 제거

여기

당신은 가서 다시 시작하고 하나 개의 방법이

관련 문제