5

I send a query to SOLR, which returns exactly one document. It's a "id:some_doc_id" search. Here are the parameters as shown in the response:

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"
}

The reponse key contains the document I expected, but I also get an error, which seems to happen in the MLT component. Here's the stack trace provided in the response:

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))

My code worked fine before the update to SOLR 4.4. Any hint what's going on and how to solve it?

Achim
  • 15,415
  • 15
  • 80
  • 144

1 Answers1

0

Thrown by EarlyTerminatingCollector when the maximum to abort the scoring / collection process early, when the specified maximum number of documents were collected.

This description doesn't sound like a real exception and more like a way to abort the collecting of documents.

@Override    
public void collect(int doc) throws IOException {    
    delegate.collect(doc);    
    lastDocId = doc;        
    numCollected++;      
    if(numCollected==maxDocsToCollect) {    
        throw new EarlyTerminatingCollectorException(numCollected, lastDocId);    
    }    
}
Bart
  • 17,070
  • 5
  • 61
  • 80