Only filter out records if they match ALL values of a facet

Hello! I am working on building out some filtering logic using the “AND” and “OR” operators and I am wondering if what I want is even possible…Each of our records have a set of string “tags” on them and which records are shown is configurable by our users. The filtering logic that we’re trying to implement is that the record will not be shown if the users configuration has blocked all the tags on a record.

For example, record 1 has the tags [“one”, “two”, “three”], and the the user has blocked tags “one” and “two”…In this scenario record 1 would still be shown in the results because tag “three” isn’t blocked. If the user were then to add tag “three” to blocked, only then will it not show up in the results list because all of record 1’s tags have been blocked.

I’ve tried some different groupings with brackets and the like but everything that I’ve tried always results in record 1 being blocked if any of the tags is configured to be blocked.

Is what I’m trying to do possible out of the box with Algolia filters or will I need to do something else to accomplish this behavior?

Best,
Justin