When using a wildcard in combination with a tag (e.g. sql-server*), a trick I learned from Jeff Atwood last year, ignored tags that match the pattern still make it through. For example, since I care very little about SQL Server Compact Edition, one of my ignored tags is sql-server-ce
... yet this question still shows up for me at the above link. I even answered it as a result.
What seems to be happening is the search is applying this logic (pseudo-code, obviously):
questions containing tag LIKE 'sql-server%' OR tag != 'sql-server-ce'
// meaning sql-server-ce still comes through because it matches the first clause
When it should be applying this logic:
questions containing tag LIKE 'sql-server%' AND tag != 'sql-server-ce'
// meaning *both* conditions have to be true
The amusing behavior is, if I am on the tagged results page, and add a new ignored tag, even one that is unrelated (like java
), the questions tagged with sql-server-ce
, java
etc. will disappear from the list (and this is still showing the results of the wildcard search, but suddenly questions with ignored tags are gone). If I refresh, they come back. So it looks like the proper logic is applied only as a result of adding or removing a favorite or ignored tag.
(I tried adding an ignored tag that also used a wildcard, sql-server-ce*
, but it behaved identically.)
I expect the ignored tags to be a bit more permanent than only immediately after making a change to ignored or favorite tags. Is there another way to retrieve all tags matching a pattern and not matching another pattern? Is this behavior by design, or is there a bug report that didn't show up in my search, or am I really the first person to notice and/or complain about this?
EDIT
Just to clarify, when I say "shows up" I mean "does not appear faded" as it should when the ignored
class is applied. I happen to have my prefs set to hide ignored questions, but I now realize many may just have the option set to fade them. I apologize for any confusion this causes - hopefully it is clear that the problem lies within the consistent application of the ignored
class.
EDIT AGAIN
Here is a prime example of what I am talking about.
If a question has only one tag that matches both a favorite and an ignored, the ignored should win - especially if it is an explicit subset of the favorite.
-
operator for search.sql-server*
but not the three or four tags that start withsql-server-ce*
. So when I search for questions taggedsql-server*
, I get a lot of questions I'm interested in, but there are always a few that I'm not, and it's cumbersome to manually parse the tags instead of relying on question title alone (and the fact that I filtered on favorite tags). I don't feel like manually adding 60 tags as favorites, and I think it's reasonable to expect favorites + ignored to act as AND instead of OR.sql-server*
and this lands me at stackoverflow.com/questions/tagged/sql-server*. Which I've also bookmarked. Since I've ignoredsql-server-ce
, I don't expect those questions to show up, but they do.