Some thoughts… the top four constraints will need to stay as advanced filters since they use “intersect with”. As you probably know, this means Bubble has to keep downloading records to the page until the advanced filter (which is run client side, on the page) finds enough results to fill the RG. Therefore the goal should be to minimize the amount of data Bubble needs to send to the page. Suggestions…
- The bottom two constraints don’t look like they need to be an advanced filter. Move them to the regular “do a search for” box and they’ll run server side. Not only is this faster, but it shrinks the size of the data set sent to the page for the advanced filters to go through.
- Format your RG group to minimize the number of results that need to be shown right away. For example, use a scrolling RG so that Bubble is only needing to load what it needs to fill the cells shown.
- Use privacy rules to prevent any unneeded fields from being downloaded to the page. This won’t impact the # of records being downloaded, but it will shrink the size of each record.
Also, if any of your advanced filters, which are list-to-list searches, could be replaced by item-to-list searches (where the user is selecting one item to search on instead of many), then you can move them out of advanced filters as noted above.
There is a way to run an advanced filter server side via an API, basically having Bubble treat itself like an external database it is calling data from. It’s a lot more complex to set up.