View Issue Details

IDProjectCategoryView StatusLast Update
0003079HTML & PERLFeature Request - Interfacepublic2017-12-27 16:58
Reporterpap05521 Assigned ToDerIdiot  
PrioritynormalSeverityfeatureReproducibilityalways
Status resolvedResolutionfixed 
PlatformFirefox 58.0b12OSWindowsOS Version10
Fixed in Version2018-01 
Summary0003079: Advanced Search - Excluded tags don't reflect specified weight, excluded completely.
DescriptionInstead, the entire tag seems to be excluded.
There is no indication on the search results of the weight being used, so it can be safely assumed they're being excluded entirely.
Steps To ReproduceExclude a tag via a specified weight (**) via Advanced Search's text inputs, not select boxes.
There is no difference in whether min()/max() is used (e.g. attempting to exclude from the opposite end).
Notice anything that would pass the filtered weight and appear is excluded along with the tag.

Example: https://anidb.net/perl-bin/animedb.pl?show=animelist&noalias=1&do.update=Search&atags.include=Russia%20*&atags.exclude=adventure%20**

include: Russia * (just to see the weighted star in the note at the top, for comparison)
exclude: adventure ** (weight not indicated in top note, also assuming min())

Result: Wolf's Rain is Russia *** and Adventure ***, thus should be listed but is not.
Additional InformationSee also 0003078 for problems with Advanced Search's manual tag weighting.

Potential solutions:
 - Reflect excluded tag weight?
Tagssearch, tags

Activities

pap05521

2017-12-23 18:49

reporter  

Un.png (2,163 bytes)   
Un.png (2,163 bytes)   

DerIdiot

2017-12-23 19:29

administrator   ~0004146

excluded tags works on a boolean base and is not weight aware. excluding a specific weight seems silly to me.
excluding ranges may or may not be useful i guess. it could work on a not set or anythign with min/max rating of <value> base.

pap05521

2017-12-23 20:23

reporter   ~0004147

Sorry if my intention wasn't clear, yes I was mostly referring to range usage similar to include.

Its usefulness would be good for filtering things that may contain a little/just enough of something not preferable, like a harem (+/*/*+) but not full blown/a huge focus (***). As opposed to excluding anything with a slight harem and otherwise be a fine result.

Hinoe

2017-12-24 02:59

reporter   ~0004148

To make the example above easier to understand, if you want all anime that either don't have a tag or have it at low weight, this currently requires two searches; being able to exclude the tag at a given weight or above would allow for that in a single search. The point of that is when you tolerate small amounts of something, but don't want it to be the cornerstone of the show. A conceptually related point is that you can currently only specify min or max, and not both, for tags that you want present; strict range selection is impossible to achieve.

Pondering the above, I had an idea that may or may not work and I figured I'd throw it here for some consideration: for inclusion, use one set of min/max where "tag is absent" is 0. Unless specified, min() is assumed at 100 and max() at 600. Here's an example:

include: unweighted tag 1, weighted tag 1, weighted tag 2 min(0) max(200), weighted tag 3 min(200) max(400), weighted tag 4 min(500) max(500), weighted tag 5 max(300), weighted tag 6 min(400)
exclude: unweighted tag 2, weighted tag 7

Explanation of each case; marked with a ** the cases with new behavior:
include: unweighted tag 1 is present (current behavior)
include: weighted tag 1 -- is present at any weight (current behavior)
** include: weighted tag 2 min(0) max(200) -- if present, is at a maximum weight of 200, but is also allowed to be absent, only not present at 300+ (not currently implemented; original point of this ticket)
** include: weighted tag 3 min(200) max(400) -- is present at a minimum weight of 200 and a maximum weight of 400 (not currently implemented or, if implemented, broken)
** include: weighted tag 4 min(500) max(500) -- is present at a weight of exactly 500, and no other (same as weighted tag 3)
include: weighted tag 5 max(300) -- is present at a maximum weight of 300 (current behavior)
include: weighted tag 6 min(400) -- is present at a minimum weight of 400 (current behavior)
exclude: unweighted tag 2 -- is not present (current behavior)
exclude: weighted tag 7 -- is not present (current behavior)

The system should throw an error at the following situations:
* min/max with unweighted tags (use include/exclude; min(0) max(anything-else) is the same as not entering the tag in either field);
* max(0) (use exclude);
* min(0) max(600) (that's the same as not entering the tag in either field);
* min > max (ummm... yeah what).

I can't conceive a situation in which you may want "up to 200 or at least 500, but not 300 or 400", or "either absent or present, but present only at a minimum weight of 400". Such arrangements are silly and I don't see a need to cater to them.

Does this all make sense? It's 1 AM and my brain is fried, so I'm not sure the explanation is particularly useful. :/

Issue History

Date Modified Username Field Change
2017-12-23 18:49 pap05521 New Issue
2017-12-23 18:49 pap05521 File Added: Un.png
2017-12-23 18:49 pap05521 Tag Attached: search
2017-12-23 18:49 pap05521 Tag Attached: tags
2017-12-23 19:24 DerIdiot Project AniDB Website => HTML & PERL
2017-12-23 19:29 DerIdiot Note Added: 0004146
2017-12-23 19:52 DerIdiot Severity major => feature
2017-12-23 19:52 DerIdiot Category Bug Report - Interface => Feature Request - Interface
2017-12-23 20:23 pap05521 Note Added: 0004147
2017-12-24 02:59 Hinoe Note Added: 0004148
2017-12-25 18:20 DerIdiot Assigned To => DerIdiot
2017-12-25 18:20 DerIdiot Status new => resolved
2017-12-25 18:20 DerIdiot Resolution open => fixed
2017-12-25 18:20 DerIdiot Fixed in Version => 2017-12
2017-12-27 16:58 DerIdiot Fixed in Version 2017-12 => 2018-01