2013-07-25 11 views
5

Invio una query a SOLR, che restituisce esattamente un documento. È una ricerca "id: some_doc_id". Qui ci sono i parametri come mostrato nella risposta:EarlyTerminatingCollectorException in MLT Componente di SOLR 4.4

params: { 
mlt.mindf: "1", 
mlt.count: "5", 
mlt.fl: "text", 
fl: "id,,application_id,... project_start,project_end,project_title,score", 
start: "0", 
q: "id:some_doc_id", 
mlt.mintf: "1", 
mlt: "true", 
wt: "json", 
rows: "1" 
} 

La chiave reponse contiene il documento che mi aspettavo, ma ho anche ottenere un errore, che sembra accadere nel componente MLT. Ecco la traccia dello stack fornita nella risposta:

org.apache.solr.search.EarlyTerminatingCollectorException 
at org.apache.solr.search.EarlyTerminatingCollector.collect(EarlyTerminatingCollector.java:62) 
at org.apache.lucene.search.BooleanScorer2.score(BooleanScorer2.java:289) 
at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:624) 
at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:297) 
at org.apache.solr.search.SolrIndexSearcher.getDocListNC(SolrIndexSearcher.java:1494) 
at org.apache.solr.search.SolrIndexSearcher.getDocListC(SolrIndexSearcher.java:1363) 
at org.apache.solr.search.SolrIndexSearcher.search(SolrIndexSearcher.java:474) 
at org.apache.solr.search.SolrIndexSearcher.getDocList(SolrIndexSearcher.java:1226) 
at org.apache.solr.handler.MoreLikeThisHandler$MoreLikeThisHelper.getMoreLikeThis(MoreLikeThisHandler.java:365) 
at org.apache.solr.handler.component.MoreLikeThisComponent.getMoreLikeThese(MoreLikeThisComponent.java:356) 
at org.apache.solr.handler.component.MoreLikeThisComponent.process(MoreLikeThisComponent.java:113) 
at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:208) 
at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135) 
at org.apache.solr.core.SolrCore.execute(SolrCore.java:1904) 
at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:659) 
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:362) 
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:158) 
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) 
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455) 
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) 
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557) 
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) 
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075) 
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384) 
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) 
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009) 
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) 
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255) 
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154) 
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) 
at org.eclipse.jetty.server.Server.handle(Server.java:368) 
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489) 
at org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53) 
at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:942) 
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1004) 
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:640) 
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) 
at org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72) 
at org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:264) 
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) 
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) 
at java.lang.Thread.run(Thread.java:724org.apache.solr.search.EarlyTerminatingCollectorException 
at org.apache.solr.search.EarlyTerminatingCollector.collect(EarlyTerminatingCollector.java:62) 
at org.apache.lucene.search.BooleanScorer2.score(BooleanScorer2.java:289) 
at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:624) 
at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:297) 
at org.apache.solr.search.SolrIndexSearcher.getDocListNC(SolrIndexSearcher.java:1494) 
at org.apache.solr.search.SolrIndexSearcher.getDocListC(SolrIndexSearcher.java:1363) 
at org.apache.solr.search.SolrIndexSearcher.search(SolrIndexSearcher.java:474) 
at org.apache.solr.search.SolrIndexSearcher.getDocList(SolrIndexSearcher.java:1226) 
at org.apache.solr.handler.MoreLikeThisHandler$MoreLikeThisHelper.getMoreLikeThis(MoreLikeThisHandler.java:365) 
at org.apache.solr.handler.component.MoreLikeThisComponent.getMoreLikeThese(MoreLikeThisComponent.java:356) 
at org.apache.solr.handler.component.MoreLikeThisComponent.process(MoreLikeThisComponent.java:113) 
at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:208) 
at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135) 
at org.apache.solr.core.SolrCore.execute(SolrCore.java:1904) 
at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:659) 
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:362) 
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:158) 
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) 
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455) 
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) 
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557) 
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) 
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075) 
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384) 
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) 
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009) 
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) 
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255) 
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154) 
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) 
at org.eclipse.jetty.server.Server.handle(Server.java:368) 
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489) 
at org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53) 
at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:942) 
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1004) 
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:640) 
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) 
at org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72) 
at org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:264) 
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) 
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) 
at java.lang.Thread.run(Thread.java:724)) 

Il mio codice ha funzionato bene prima dell'aggiornamento a SOLR 4.4. Qualche suggerimento su cosa sta succedendo e su come risolverlo?

+0

Sto ricevendo un errore simile, ma non ho ancora trovato una risposta. –

+1

Lo stesso problema qui, si tratta di un bug nel codice 4.4, se qualcosa dovesse interferire e gestire questa eccezione? – Hedlok

+2

https://issues.apache.org/jira/browse/SOLR-5125 - bug segnalato – Hedlok

risposta

0

Generato da EarlyTerminatingCollector quando il massimo per interrompere anticipatamente il processo di calcolo/raccolta, quando è stato raccolto il numero massimo specificato di documenti.

Questa descrizione non sembra una vera eccezione e più come un modo per interrompere la raccolta di documenti.

@Override  
public void collect(int doc) throws IOException {  
    delegate.collect(doc);  
    lastDocId = doc;   
    numCollected++;  
    if(numCollected==maxDocsToCollect) {  
     throw new EarlyTerminatingCollectorException(numCollected, lastDocId);  
    }  
}