You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Martin Ruderer <ma...@freiheit.com> on 2019/08/12 19:44:57 UTC
ltr (reranking) in combination with cursorMarks
Hello,
I am trying to use ltr together with cursorMarks on solr 7.7 and I am
getting the exception java.lang.ClassCastException:
org.apache.lucene.search.TopDocs cannot be cast to
org.apache.lucene.search.TopFieldDocs (full stacktrace below).
Browsing Jira I have found an issue that suggests I should always
include sort by score when combining reranking with cursorMarks.
However, that hasn't changed anything.
Is there anything I am missing?
o.a.s.s.HttpSolrCall null:java.lang.ClassCastException:
org.apache.lucene.search.TopDocs cannot be cast to
org.apache.lucene.search.TopFieldDocs
at org.apache.solr.search.SolrIndexSearcher.populateNextCursorMarkFromTopDocs(SolrIndexSearcher.java:1458)
at org.apache.solr.search.SolrIndexSearcher.getDocListAndSetNC(SolrIndexSearcher.java:1686)
at org.apache.solr.search.SolrIndexSearcher.getDocListC(SolrIndexSearcher.java:1395)
at org.apache.solr.search.SolrIndexSearcher.search(SolrIndexSearcher.java:566)
at org.apache.solr.handler.component.QueryComponent.process(QueryComponent.java:545)
at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:296)
at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:173)
at org.apache.solr.core.SolrCore.execute(SolrCore.java:2477)
at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:724)
at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:530)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:361)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:305)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1691)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:582)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:119)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:335)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
at org.eclipse.jetty.server.Server.handle(Server.java:534)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303)
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148)
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)
at java.lang.Thread.run(Thread.java:748)
Best regards,
Martin Ruderer
--
Martin Ruderer
Dr. rer. nat. Dipl.-Math.
freiheit.com technologies gmbh
Budapester Straße 45
20359 Hamburg / Germany
fon: +49 40 / 890584-0
Hamburg HRB 70814
+++ Hamburg/ Germany + Lisbon/ Portugal +++
https://www.freiheit.com
https://www.facebook.com/freiheitcom
B444 034F 9C95 A569 C5DA 087C E6B9 CCF9 5572 A904
Geschäftsführer: Claudia Dietze, Stefan Richter
Re: ltr (reranking) in combination with cursorMarks
Posted by Dmitry Kan <so...@gmail.com>.
Hi Martin,
I've ran into the same issue and the only solution that worked was to fall
back to (less efficient) start & rows parameters. Can you consider filing a
jira?
Thanks,
Dmitry
On Mon, Aug 12, 2019 at 10:45 PM Martin Ruderer <ma...@freiheit.com>
wrote:
> Hello,
>
> I am trying to use ltr together with cursorMarks on solr 7.7 and I am
> getting the exception java.lang.ClassCastException:
> org.apache.lucene.search.TopDocs cannot be cast to
> org.apache.lucene.search.TopFieldDocs (full stacktrace below).
>
> Browsing Jira I have found an issue that suggests I should always
> include sort by score when combining reranking with cursorMarks.
> However, that hasn't changed anything.
>
> Is there anything I am missing?
>
> o.a.s.s.HttpSolrCall null:java.lang.ClassCastException:
> org.apache.lucene.search.TopDocs cannot be cast to
> org.apache.lucene.search.TopFieldDocs
> at
> org.apache.solr.search.SolrIndexSearcher.populateNextCursorMarkFromTopDocs(SolrIndexSearcher.java:1458)
> at
> org.apache.solr.search.SolrIndexSearcher.getDocListAndSetNC(SolrIndexSearcher.java:1686)
> at
> org.apache.solr.search.SolrIndexSearcher.getDocListC(SolrIndexSearcher.java:1395)
> at
> org.apache.solr.search.SolrIndexSearcher.search(SolrIndexSearcher.java:566)
> at
> org.apache.solr.handler.component.QueryComponent.process(QueryComponent.java:545)
> at
> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:296)
> at
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:173)
> at org.apache.solr.core.SolrCore.execute(SolrCore.java:2477)
> at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:724)
> at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:530)
> at
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:361)
> at
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:305)
> at
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1691)
> at
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:582)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
> at
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
> at
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180)
> at
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512)
> at
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
> at
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)
> at
> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:119)
> at
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
> at
> org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:335)
> at
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
> at org.eclipse.jetty.server.Server.handle(Server.java:534)
> at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320)
> at
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
> at org.eclipse.jetty.io
> .AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273)
> at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
> at org.eclipse.jetty.io
> .SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)
> at
> org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303)
> at
> org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148)
> at
> org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)
> at java.lang.Thread.run(Thread.java:748)
>
> Best regards,
> Martin Ruderer
> --
> Martin Ruderer
> Dr. rer. nat. Dipl.-Math.
>
> freiheit.com technologies gmbh
> Budapester Straße 45
> 20359 Hamburg / Germany
> fon: +49 40 / 890584-0
> Hamburg HRB 70814
>
> +++ Hamburg/ Germany + Lisbon/ Portugal +++
>
> https://www.freiheit.com
> https://www.facebook.com/freiheitcom
>
> B444 034F 9C95 A569 C5DA 087C E6B9 CCF9 5572 A904
> Geschäftsführer: Claudia Dietze, Stefan Richter
>
--
Dmitry Kan
Luke Toolbox: http://github.com/DmitryKey/luke
Blog: http://dmitrykan.blogspot.com
Twitter: http://twitter.com/dmitrykan
SemanticAnalyzer: https://semanticanalyzer.info