“Must match” filters

With Feeder you can create really intricate filters for your posts. You can create filters that match on a subset of your feeds, or filters that match on all your feeds. There are also Exclude filters and Include filters that change what happens when a filter actually matches (we call it “holds true” or “evaluates to true”).

This can cause some headaches when combining the global filters and regular filters. The global Exclude filter is particularly affected by this.

This is why we created a setting called “Advanced: Must always be true”.

It relates to the boolean aspect of filters. For a post to be let through or stay “unfiltered”, any filters for that post can evaluate to “true”.

So if you have filter A, B, C that all match on Feed #1, and a new post comes in to Feed #1, if either filter A, B or C evaluates to “true” the post is let through. This is usually not what you want with global filters, so we create two types of filters. The “Must match” and “Any match”. If you toggle that setting to “Must always be true”, the filter falls into the “Must match” category.

An example:

Filter A: Say you want to EXCLUDE the word "Ford" on all feeds (Feed #1, #2 and #3)
Filter B: you want to INCLUDE the word "China" on a specific feed (Feed #1).

If both filters are “any match” and a post comes in on Feed #1, if either Filter A or Filter B hold true, for example the title is “Ford eyes the China in Q4 2021”.

Filter A is false: It contains Ford
Filter B is true: It contains China

So the question Feeder asks:

Does either Filter A OR Filter B evaluate to true? If so, keep the post in the list.

Filter B is true so yes, include it and alert me about it.

But with the “Must match” setting on Filter A the question becomes:

Does Filter A evaluate to true? If true, keep going
Does Filter B evaluate to true? If yes, keep

So in that case the post is excluded.

In equation form it goes from being

Should include = FilterA OR FilterB OR FilterX


Should include = (FilterMustA AND FilterMustB And FilterMustX) AND (FilterAnyA OR FilterAnyB OR FilterAnyX)

It’s a tricky problem to wrap one’s mind around, which is why we’re always available for help at [email protected]