risdenk opened a new pull request, #2221:
URL: https://github.com/apache/solr/pull/2221

   https://issues.apache.org/jira/browse/SOLR-17131
   
   # Description
   
   If a query has `rows=0` Solr does not need to sort the results or even 
compute the score. This means the filterCache can be more efficient to compute 
the result and Solr doesn't spend time on unnecessarily sorting and scoring 
large result sets for it to be thrown away. 
   
   There is one subtle difference from this change - `maxScore` is no longer 
returned if `rows=0` which seems like a reasonable tradeoff. If `maxScore` is 
needed then set `rows=1`. `maxScore` can't reliably be compared across searches 
anyway so no reason to have it when `rows=0`.
   
   This was found while looking at 
https://issues.apache.org/jira/browse/SOLR-14765 and trying to reason through 
the case of `rows=0` that are sometimes used to just determine count of 
matching results. This change adds the check for `rows=0` before other checks 
to ensure that we can short circuit scoring even if there is a scoring query. 
We also don't add the query to the filter cache since that could result in 
filter cache thrashing. 
   
   In some tests, we found that queries with `rows=0` p99 improved by 50% and 
CPU dropped by 5%.
   
   # Tests
   
   Updated tests in TestMainQueryCaching to account for this optimization.
   
   # Checklist
   
   Please review the following and check all that apply:
   
   - [x] I have reviewed the guidelines for [How to 
Contribute](https://github.com/apache/solr/blob/main/CONTRIBUTING.md) and my 
code conforms to the standards described there to the best of my ability.
   - [x] I have created a Jira issue and added the issue ID to my pull request 
title.
   - [x] I have given Solr maintainers 
[access](https://help.github.com/en/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork)
 to contribute to my PR branch. (optional but recommended)
   - [x] I have developed this patch against the `main` branch.
   - [x] I have run `./gradlew check`.
   - [x] I have added tests for my changes.
   - [ ] I have added documentation for the [Reference 
Guide](https://github.com/apache/solr/tree/main/solr/solr-ref-guide)
   


-- 
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...@solr.apache.org

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


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

Reply via email to