The tags field on a product is tokenized and for tokenized fields, equality exists if the term is found anywhere in the field.
Some possible solutions here would be to either perform some sort of additional filtering on your end once the results are returned, to only select the ones that match your query exactly. Alternatively, you can use more specific tags on your products to prevent unwanted overlap.
Thanks for the info. I saw that tokenized fields were searched that way, but wasn't able to find info on which fields are tokenized. What makes tags a tokenized field? Is it because it is a comma separated list?