I have a Data Type (Australian Zip/Post Codes + City/Suburbers) with approx 15,000 rows. Search seems to take a very long time to get any results, is this normal?
I’m trying to make a search box, where the user can start typing the post code / suburb and get results:
I’ve tried using multiple plugins (Search & Autocorrect Plugin | Bubble and Quick Find Search & Facet Filtering Plugin | Bubble), however, none of these speed the search up which makes me think it’s an issue with data size (even though it’s not that much data)…
Does anyone have any recommendations?
Examples of the data:

Are you asking about performance? How long is it taking to search.
I’m asking if ppl think my issues are due to the amount of records…
With Autosearch&Correct plugin it’s taking minutes… I know everything is set up correctly because when I search a smaller datatype everything works….
I thought bubble was capable of transacting up to 100k records.
Should I be looking into Algolia to be able to search 15,000 records and have instant results?
I was wondering because in your forum post, there isn’t actually any questions being asked. Can you show how you’re searching for your data? Are you using a searchbox or a plugin?
In an app I’m working on right now there’s a searchbox that searches for airports. There’s roughly 80 000 airports in my database. It takes about 3 seconds for search results to appear.
2 Likes
Sorry - the post title had the question “Is this normal?”
That’s interesting, based on what you’re saying mine should be fast then. My setup is as follows - let me know if you have any recommendations:
Input box + Search&Autocorrect :
RG set to Search&Aurocorrect’s matches:
Also weird, when I type in an input my app starts to become unresponsive and I get a Workload Usage Spiked error:
It’s only 331 workload units (or is that a lot?), and I’m not actually cutting into into my monthly allocation yet…
This is so frustrating… You would think it’s a pretty standard use case to need to be able to search/query reference data. 15k records is not even a lot.
I’m back to using the QuickFine plug-in, which is still too slow (about 13 seconds, but at least the app doesn’t hang).
I want to know how when I’m in the Data Tab, I can type a string and it will return results within 200ms, but when I’m in the app it takes 13 seconds:
Hi there,
What sort of search response times are you getting without using Fuzzy Search? The way Fuzzy Search works is it loads most of your database to iterate throgu and determine best matches; without Fuzzy and just using Bubble’s native search, the search happens in the backend, and only loads the matching results. Compare these 2 for timing.
Additionally, depending on the heaviness of the datatype (meaning how many fields, how large (charachters) those fields are, other datatypes and dependencies linked in these fields, etc) it may take longer.
Finally, I definitely recommend some type of pagination (i.e. only load 12 results per page, instead of the entire list).
Hope this points you in the right direction!
2 Likes
Thanks!
Search timings:
- QuickSearch = ~13 Secs
- Normal “Do A Search” filtered by Input’s Value = ~30 Secs
- Search & Autocorrect = multiple minutes.
Here’s an example of one record:
Pagination isn’t really an option as it is a search and select… However, I am limiting the RG to 8 rows.
Are these codes manually in your database or pulling from some msp or location based API /plugin?
1 Like
Filtering occurs after records are fetched, which could cause browser crashes when processing around 15,000 records. Could you adjust your query to avoid client-side filtering?
Just add a search column to the table to combine whatever you want to search for in one single field
Search column example “AT 2607 Mawson $2500”
3 Likes
@nocodeventure
I have no filters, I am already searching on a field that combines postcode and suburb:
“Combined_suburb_postcode” e.g. value “9000 Sydney”
How do I move the search to the backend?
You mentioned 1. Normal “Do A Search” filtered by Input’s Value = ~30 Secs
Can you do this without using filtered by?
1 Like
Sorry this was with it directly in the do a search (combined_postcode_suburb = input’s value)
I wasn’t actually doing :filtered by
This is exactly what I do. I use the normal Bubble searchbox element (not a plugin, I think that’s what OP’s problem is, I’ve never gotten plugin searchboxes to play nice with large datasets) and I have a field called “Search Combo” that’s a text value of all the different fields one might want to search for. For example, for a customer list, the Search Combo would be “Name, Phone, Company Name”.
1 Like
“Search & Autocorrect” won’t be suitable for 15,000 records. it should perform well if your records are up to 300~400 records, but more than that it won’t be performant.
Second, about the WU usage spike, that’s normal compared to your traditional usage over time, so if you are never using the application and once you made 331 WU then you will receive a notification of the spike just as a heads up.
In your case, you can use Bubble’s native search which might show filtered results in 1~2 seconds. If you’re seeking a better performance, then you can go for Algolia.
1 Like
change it to a setup where you are eliminating potentials for capitalization to be a problem…you would have to do this by creating a group, make it type text and datasource is the input elements value:lowercase (this is because your also need to make your database entries lowercase as well dynamically and we are not able to through dynamic expressions when comparing two sources values against each other to use the lowercase operator on the second value in the comparison expression). It also has to be done because Bubble contains comparative is case sensitive
… contains
This operation tests if the first entry contains the argument. The substring of text should match the sequence of characters of the first entry exactly, including case. This search respects the order of the words in the entry.
For example, searching for ‘cat’, ‘hat’, ‘cat in’, ‘cat in the’, ‘in the hat’, ‘at in’, or ‘cat in the hat’ would all return the phrase ‘the cat in the hat’.
However, searching for ‘cat the hat’, ‘cat hat’, or ‘Cat’ would not return ‘the cat in the hat’. This search is useful for returning exact matches for partial words, like searching ‘pepp’ and returning ‘peppers’.
Make your search with built in constraint be combined_postcode_suburb:lowercase contains group inputs value lowercase.
Make your Repeating Group set to display at max maybe 10 items and likely for design reasons, it should be limited to 5 if you don’t want the ugly scrollbar and a clean ‘dropdown’ like selector made from groupfocus and repeating group.
One thing that might also need to be done based on the ordering of items in the value to compare as in the example from manual of cat in the hat…you may need to split your data field (since it is zip plus other values as single string)…or maybe structure the single string properly so it is 9000|suburb_name|other_details…which causes it to be treated as single word and then should remove the issue of contains operator being order driven.
Lastly, if you are still stuck on this in two weeks, reach out to me directly as I’d be interested to test my own tools against the issue.
1 Like
Bubble can definitely handle queries on this number of records quickly in normal ‘Do a search’ on native elements, if not I’d raise a bug report.
Also, ‘Do a search:filtered’ and ‘Do a search:merged with Do a search’ should both happen server side unless using ‘advanced’ filters.
2 Likes
The results are fetched from the database and then a filter is applied on the front end. Correct us if we’re mistaken.