Move complex search to backend

I’ve finally gotten around to experimenting with #2. The outcome is that you can move a list-to-list search server side through this method, and it performs well, but you are very limited. The search has to be:

  • Find things that contain at least one of the items from the list.
  • This has to be the only search run on the data.

This is because to combine this joining table search with another joining table search, or a search on the main datatype, you need to use a nested search or intersect two or more searches. From building these searches and looking at Chrome’s dev tools, what I saw was:

  • With a nested search (a search within a search), Bubble will download the entire results of the nested search to the browser, and then filter the main search results through that client side.
  • With an intersected search, Bubble will download the entire results of both searches to the browser and find the intersects client side.

The above is true even if the searches you are combining are basic searches that individually would run server side. Also, for my app at least, these searches perform worse than the advanced filter.

So my only other avenues are: a) experimenting with #1 (which seems kind of hacky); b) moving the database outside of Bubble and just using Bubble as a front end; or c) waiting for Bubble to expand the types of searches that can be run server side.

1 Like