2013-10-17 14 views
10

DeklarowanieDeklarowanie unikalny klucz jako int w wynikach SOLR omyłkowo

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

w schema.xml wyniki w następujący błąd.

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} 

Czy ktoś może mi powiedzieć, dlaczego tak się dzieje?

+0

Istnieje 'java.lang.NumberFormatException: Dla ciągu wejściowego:" MA147LL/A "'. Czy twój indeks ma identyfikator, który nie jest int. – JHS

Odpowiedz

1

Zdefiniowano id jak int oraz z komunikatem o błędzie, który próbujesz dodać zawartość MA147LL/A do niego (NumberFormatException: Dla ciągu wejściowego: „MA147LL/A” at) ..

więc z poniższej linii Ci schema.xml

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

powinno być w porządku

+0

Wystąpił błąd podczas inicjowania QueryElevationComponent. Wiem, że ten błąd występuje tylko dlatego, że elewacja składnik przyjmuje klucz unikalny jako tylko ciąg. Ale potrzebuję tego pola jako int. tylko dlatego, że zadeklarowałem to jako ciąg, mój obiekt wyjściowy jest 0 0 0 ... – user2852305

24

idź do elevate.xml @ SOLR_HOME \ example \ przykładem-DIH \ solr \ solr \ conf

zmodyfikować go w ten sposób

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

Więc właściwie skomentować te dwie linie, które powodują wyjątek dla ciebie

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

Mam nadzieję, że to rozwiązuje problem.

+2

Rozwiązałem mój problem ... Wydaje się, że przykłady solr po prostu proszą ludzi, aby mieli problemy, próbując połączyć to z bazą danych ... Klucze podstawowe zwykle są to ints i są unikalne, więc posiadanie tego w domyślnym pliku xml spowoduje konflikt z tym typem konfiguracji. –

Powiązane problemy