[
https://issues.apache.org/jira/browse/SOLR-18156?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18110431#comment-18110431
]
Chris M. Hostetter commented on SOLR-18156:
-------------------------------------------
{quote}Maybe our test randomization should sometimes {{rarely()}} use a super
long {{timeAllowed}} to help exercise this.
{quote}
I spun this idea into SOLR-18414 and updated the current Jira description to
cover the full scope of problems it has identified (when that patch is applied
to Solr 10.0.0)
> Various problems using QueryLimits (aka: timeAllowed) in Solr 10.0.0 due to
> anonymous IndexSearcher
> ---------------------------------------------------------------------------------------------------
>
> Key: SOLR-18156
> URL: https://issues.apache.org/jira/browse/SOLR-18156
> Project: Solr
> Issue Type: Bug
> Affects Versions: 10.0
> Reporter: Chris M. Hostetter
> Assignee: Chris M. Hostetter
> Priority: Major
> Fix For: main(11.0), 10.1, 10.0.1
>
> Attachments: SOLR-18156.patch
>
>
>
> Solr 10.0.0's {{SolrIndexSearcher}} implements {{QueryLimits}} in a way that
> constructs an anonymous {{IndexSearcher}} for executing each entire {{Query}}
> object - this causes several problems:
> # Solr specific "join" and "graph" queries trigger ClassCastExceptions
> because they expect a {{SolrIndexSearcher}} to be used during
> {{Query.createWeight()}}
> ** This also affects "join domains" in JSON Faceting
> ** the same type of assumptions existing LTR feature logic
> # The anonymous {{IndexSearcher}} does not know about the configured
> {{statsCache}} for the original {{SolrIndexSearcher}} so only local stats are
> used
> # The anonymous {{IndexSearcher}} does not know about the configured
> {{similarityFactory}} for the original {{SolrIndexSearcher}} so the lucene
> default BM25 similarity is used
> # several of Solr's custom query impls have cache optimizations that kick in
> when they detect a {{SolrIndexSearcher}} which are not used
>
> {panel:title=Original Jira Descrption}
> Beginning with Solr 10.0.0, attempting to use any of the {{join}} QParsers in
> conjunction with QueryLimits results in a ClassCastException.
> This is because {{JoinQuery.createWeight(...)}} expects it will only ever be
> called with a {{{}SolrIndexSearcher{}}}, but
> {{SolrIndexSearcher.seach(Query,Collector)}} is overriddent to create an
> anonymous {{IndexSearcher}} to use when QueryLimits are enabled.
> This was not a problem in Solr 9.x, because back then the logic for creating
> an anonymous {{IndexSearcher}} was inside the overridden
> {{SolrIndexSearcher.seach(List<LeafReaderContext>,Weight,Collector)}} (after
> the {{Weight}} instance had already been created using the original
> {{{}SolrIndexSearcher{}}})
> {panel}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]