jpountz commented on PR #12490:
URL: https://github.com/apache/lucene/pull/12490#issuecomment-1666879261

   To give a bit more context about why I ended up adding 
`ScorerSupplier#setTopLevelScoringClause`: I considered other options, such as:
    - adding a new `ScoreMode` but `Query#createWeight` is too early to make 
this kind of decision. E.g. if your query is `a OR b`, `a` may be the top-level 
scoring clause if `b` produces a null scorer, so `createWeight` is not a good 
fit.
    - adding a new parameter to `Weight#scorer`, but again it's too early for 
the same reason. With query `a OR b`, if Lucene creates a scorer for `a` first 
assuming it will be a clause of a boolean query, but if then `b` produces a 
`null` scorer, `a` will be the top-level scoring clause, but it's already been 
created as a non-top-level scoring clause.
    - adding a similar `setTopLevelScoringClause` on `Scorer`, but I did not 
like mutating scorers
   
   So a setter on `ScorerSupplier` felt like the best place to set this kind of 
information.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to