lila
lila copied to clipboard
Using rating range in "Advanced search" returns wrong results
Exact URL of where the bug happened
https://lichess.org/@/SkegOverren/search?ratingMin=2400&ratingMax=2900&perf=1&players.a=skegoverren&players.winner=skegoverren&sort.field=d&sort.order=desc
Steps to reproduce the bug
- Goto URL
- Notice only one game is being shown, against a 3000+ player
- Notice the 3000+ player is out of the ratingMax range (2900)
- Reduce ratingMin to 2300 and do the search again
- Notice now there are 100+ games found against players over 2500 rating
What did you expect to happen?
- Rating range should be properly parsed and return the correct games
What happened instead?
The ratingMin value has to be set way lower than the desired minimal rating of the opponents for the correct games to be displayed. The ratingMax value is not respected, at least in this example
Operating system
Windows 8
Browser and version (or alternate access method)
Chrome
Additional information
No response
Similar to #14546 ?
It is a problem regarding a different use case within the same search form, which therefore seems to be broken in multiple ways.
The Rating filter is "Average rating of both players" ( hover over the ? on the form to see it on the site) .
With that in mind, it sounds like the filter is working as expected. People do miss the average part sometimes (see closed git issues), but I am not sure there is a good way to make it more clear.
The question mark indeed indicates the search filter interpretes the values for ratingMin and ratingMax as an average rating of both players.
To me this implementation doesn't make sense, though, because:
1. Inconsistency Why interprete specifically these values as average when any other field in the form is taken as is and then be required to hint at how this deviation works, because a lot of people get it wrong?
2. Questionable use case What is the use case for having games returned based on the average rating of both players? I don't get it.
My use case e.g. would be to filter those games, where for example I lost to very low rated players or won against very high rated players (compared to my own rating). Or another example: "How many 2500 players have I beaten with black in Rapid". But the form doesn't allow for all of that which forces me to use the API instead for otherwise very simple tasks.
3. Unneccessary complex and confusing implementation If someone really wanted to filter games by "the average rating of both players" it can simply be done using a single field named avgRating. There is no need to have the user define two values (minRating, maxRating) and let the form calculate their average. The way it's been currently implemented a) the user needs to think of two values resulting in an average of x and b) unneccessary compute is being used to calculate the average the user has thought of in the first place.
Your understanding of minRating and maxRating is wrong talking in regard of third point. They are search constraints on average rating of both opponents, i.e. minRating set to 2000 means "show me games in which the average of rating of both players is atleast 2000". Though, I agree with 1 and 2 point.