2012-04-20 1 views
0

멀티 기가 바이트 Solr 색인에서 일부 solr 쿼리에 대해 다음과 같은 예외가 발생합니다. 전체 색인은 Solr 3.5.0을 기반으로합니다.Solr 예외 : docID는> = 0이고 <maxDoc = 20이어야합니다.

인덱스가 손상되었다는 의미입니까? 그런 다음이를 복구 할 수있는 방법이 있습니까? SOLR 3.6.0 및 전체 재 인덱스

HTTP Status 500 - docID must be >= 0 and < maxDoc=20 (got docID=2144084671) java.lang.IllegalArgumentException: docID must be >= 0 and < maxDoc=20 (got docID=2144084671) at org.apache.lucene.index.SegmentReader.document(SegmentReader.java:475) at org.apache.lucene.index.DirectoryReader.document(DirectoryReader.java:583) at org.apache.solr.search.SolrIndexReader.document(SolrIndexReader.java:260) at org.apache.solr.search.SolrIndexSearcher.doc(SolrIndexSearcher.java:452) at org.apache.solr.util.SolrPluginUtils.optimizePreFetchDocs(SolrPluginUtils.java:271) at org.apache.solr.handler.component.QueryComponent.doPrefetch(QueryComponent.java:478) at org.apache.solr.handler.component.QueryComponent.process(QueryComponent.java:385) at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:194) at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129) at org.apache.solr.core.SolrCore.execute(SolrCore.java:1372) at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:356) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:252) 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:224) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:679)

+0

검색어를 복사 할 수 있습니까? – shem

+0

이것은 대략 세 번마다 한 번씩 쿼리를 실행합니다. 기본 쿼리 처리기 (/ select? q = myQyery)는 정상적으로 작동합니다. 문제는 내 edismax 쿼리 유형 (/ qt = generic & q = myQuery를 지정/지정)에서 발생하며, 이것이 이것이 solr 버그 여야한다고 생각하는 이유입니다. – Mohsen

+1

일반적으로 절대 문서 ID가 20 개의 문서 세그먼트에 대한 로컬 세그먼트, 세그먼트 기준 의사 ID로 전달됩니다. 또한 숫자 2144084671이 위험 할 정도로 Integer.MAX_VALUE에 가깝습니다. 어쩌면 오버플로 상태 일 수도 있습니다. –

답변

1

업그레이드는이 문제를 해결했다.