2013-10-17 34 views
10

聲明聲明唯一密鑰,以Solr的結果INT錯誤

<field name="id" type="int" indexed="true" stored="true" required="true" 
multiValued="false" /> 

schema.xml導致以下錯誤。

HTTP Status 500 - {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:243) at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at 
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023) at 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) at 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at 
java.lang.Thread.run(Thread.java:619) Caused by: org.apache.solr.common.SolrException: Error initializing QueryElevationComponent. at 
org.apache.solr.core.SolrCore.<init>(SolrCore.java:835) at 
org.apache.solr.core.SolrCore.<init>(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(FutureTask.java:303) at 
java.util.concurrent.FutureTask.run(FutureTask.java:138) at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at 
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at 
java.util.concurrent.FutureTask.run(FutureTask.java:138) 
... 3 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.<init>(SolrCore.java:830) 
... 13 more Caused by: java.lang.NumberFormatException: For input string: "MA147LL/A" at 
java.lang.NumberFormatException.forInputString(NumberFormatException.java:48) at 
java.lang.Integer.parseInt(Integer.java:449) at java.lang.Integer.parseInt(Integer.java:499) 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.<init>(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} 

任何人都可以告訴我爲什麼會發生這種情況嗎?

+0

有一個'java.lang.NumberFormatException:對於輸入字符串:「MA147LL/A」'。你的索引是否有一個不是int的id。 – JHS

回答

1

您定義idint,並從您嘗試此內容MA147LL/A添加到它(NumberFormatException的:對於輸入字符串:「MA147LL/A」的)錯誤信息..

所以用下面的行你SCHEMA.XML

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

你應該罰款

+0

初始化QueryElevationComponent時出錯。我知道這個錯誤的發生只是因爲elevationcomponent將唯一鍵作爲唯一的字符串。但我需要該字段爲int。只是因爲我宣佈它爲字符串我的對象輸出是0 0 0 ... – user2852305

24

轉到elevate.xml @ SOLR_HOME \例子\例子,DIH \ Solr的\ Solr的\的conf

修改這樣

<query text="ipod"> 
<!-- <doc id="MA147LL/A" /> put the actual ipod at the top 
    <doc id="IW-02" exclude="true" /> exclude this cable --> 
</query> 

所以,你居然註釋掉這兩條線排放造成的異常爲你

<doc id="MA147LL/A" /> put the actual ipod at the top 
<doc id="IW-02" exclude="true" /> exclude this cable 

我希望它幫您解決問題。

+2

解決了我的問題...似乎solr示例只是要求人們有問題試圖連接到數據庫...主鍵往往是整數,並且是獨一無二的,因此在升級默認xml中會導致與這種常見類型的設置衝突。 –