Filtering by multiple tags has unexpected logic

I noticed when filtering by two tags, the combination acts as an OR instead of AND operation - you get all the results that have either tag instead of those that have both.

sometimes. when filtering tags refinement : 2D class, you get all jobs of either. when filtering refinements completed in january, you get only those which satisfy both.

Hi @DanielAsarnow and @CryoEM2,

I can give a quick breakdown of the functionality and a bit of the reasoning behind it.

When filtering by multiple filters of different types the browse system will only show items matching both of those filter options. For example, if you filter by job type and date, only jobs that are of that job type and fall within the selected date range will be shown.

When filtering by multiple filters of a single type, all items that have any of those attributes will be shown. For example when filtering jobs by two different statuses, any job that has either of those statuses will be shown.

In the first case of filtering with different filter types this was the natural way to implement the logic. But for filtering with filters of the same type, different use cases presented different needs. When filtering by multiple statuses there would be no intersection and so all items matching either filter need to be shown, the same for job types and lanes. For consistency we maintained the same logic for tags, as we did not want to overly complicate the functionality with another layer of AND and OR logic selectors.

However, we definitely see the utility of having the option to filter tags with an AND or OR operation, and will look into a clean way to expose this option in the future.

1 Like