Firstly, is this still recognised as the best practice for achieving this problem? If not what is a better method? If it is, I do not really understand how and why the advanced filter works could someone explain it to me? Perhaps this will help me solve my real question…
What I want to do is filter the repeating group but by an OR currently the above filter solution does AND.
User with a single skill - awesome
User with skill list - awesome, iron man, developer, racing
Filter for users with Awesome and Iron Man
results, User with skill list
Or (what I want)
Filter for users with awesome or iron man
Results, user with a single skill, user with skill list
The “intersect with” via the advanced filter is what everyone seems to use and is discussed in a lot of posts on the forum. It’s what I use for searching a list with a list. It is executed “client side”, meaning that Bubble loads the full (non-filtered) results into the page but then cuts it back by the advanced filter. This is slower than “server side” where Bubble does filtering before it even gets to the page. Server side searches are the ones in the “do a search for” box.
If your dataset is large, you’ll want to do a scrolling repeating group, or a “show more” so that Bubble just needs to find enough results to populate the repeating group, rather than all results.
Note that I recently learned that an advanced filter could be executed server side via an API workflow, which would be faster for a large dataset. However it’s fairly complex to set up.
You can play with the or/and via the :count for the intersect with expression. If :count is not 0 then you’re saying that if the intersect between the multidropdown’s list and a thing’s list is at least 1, then show the thing.
PS: I found this post very helpful in simplifying what’s going on: