Jason Gerlowski created SOLR-18309:
--------------------------------------
Summary: Query limits should apply to expensive-to-create scorers
Key: SOLR-18309
URL: https://issues.apache.org/jira/browse/SOLR-18309
Project: Solr
Issue Type: Improvement
Components: Query Limits
Affects Versions: main(11.0)
Reporter: Jason Gerlowski
Solr's timeAllowed enforcement relies on wrapping the BulkScorer returned by
Weight.bulkScorer()/scorer() in Lucene's TimeLimitingBulkScorer. This wrapping
class checks the deadline periodically while documents are actually being
scored and collected.
This is sufficient in most cases. But it leaves a gap: short-circuiting can
only be done after the scorer has been created. This is a problem for queries
such as "join" or "graph", where scorer-creation itself involves a ton of work,
issuing sub-requests, etc. None of this scorer-creation work is subject to
timeAllowed and as a result (e.g.) join queries regularly run waaaay over their
timeAllowed or other query limits.
We should find a way to make scorer-creation itself subject to query limits, if
possible. Or alternatively, rework these query implementations so that
scorer-creation is a cheaper operation.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]