5

我向 SOLR 发送一个查询,它只返回一个文档。这是一个“id:some_doc_id”搜索。以下是响应中显示的参数:

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

响应键包含我期望的文档,但我也收到一个错误,这似乎发生在 MLT 组件中。这是响应中提供的堆栈跟踪:

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

在更新到 SOLR 4.4 之前,我的代码运行良好。任何提示发生了什么以及如何解决它?

4

1 回答 1

0

EarlyTerminatingCollector 在提前终止评分​​/收集过程的最大值时抛出,当收集到指定的最大文档数时。

这个描述听起来不像是一个真正的例外,更像是一种中止文档收集的方法。

@Override    
public void collect(int doc) throws IOException {    
    delegate.collect(doc);    
    lastDocId = doc;        
    numCollected++;      
    if(numCollected==maxDocsToCollect) {    
        throw new EarlyTerminatingCollectorException(numCollected, lastDocId);    
    }    
}
于 2013-08-05T14:22:47.843 回答