The Fuzzy Search for Bubble Mobile plugin provides fuzzy search functionality specifically designed for mobile applications. This plugin allows you to implement intelligent search capabilities that can find results even when users make typing errors, use different spellings, or provide partial matches. It’s perfect for creating user-friendly search experiences in mobile apps where precise typing can be challenging.
The plugin uses sophisticated algorithms to match search queries against your database content, providing flexible and accurate search results with customizable relevance thresholds and matching options.
Prerequisites
This plugin is designed specifically for the mobile version of the Bubble editor. To test the plugin on your mobile device, use the TestFlight app available at: https://testflight.apple.com/join/njge8JcQ
⚠️
Please note that the testing app is currently available for iOS only.
No external API keys or accounts are required - the plugin works entirely within your Bubble app environment.
⚠️
Warning
Search runs directly on your device. It works fast and smoothly with small datasets, but:
Optimal performance is achieved with databases up to 3,000 items.
With 5,000–10,000 items, you may experience slowdowns on mobile devices.
Beyond 10,000 items, search may become noticeably slower or even freeze temporarily.
To keep the app responsive, we recommend limiting the dataset size or using filters to reduce the number of records.
How to setup
To setup the Fuzzy Search for Bubble Mobile plugin:
Install the Fuzzy Search for Bubble Mobile plugin from the Bubble plugin marketplace.
Add the Search element to your mobile page.
Configure the data source and search fields in the element properties.
Set up the search parameters (threshold, case sensitivity, etc.) according to your needs.
Connect the search actions and events to your workflow.
The plugin is ready to use immediately after installation - no additional configuration or API keys are required.
Plugin Element Properties - Search
The plugin contains a Search visual element that should be used on a mobile page to provide fuzzy search functionality.
Fields
Title
Description
Type
Default
Data Type
App data type to search. Choose "text" to search a plain list of texts
Custom Type
—
Data Source
The list of things (or texts) to search through
Custom Data (List)
—
Field To Search 1
Primary field to search in. Ignored for a list of texts
Custom Field
—
Field To Search 2
Optional secondary field to search in
Custom Field
—
Field To Search 3
Optional third field to search in
Custom Field
—
Threshold
Maximum score a result can have to be included (0.0–1.0). 0.0 returns only exact matches, 1.0 returns everything
Number
0.6
Case Sensitive
Take letter case into account
Checkbox
No
Min Match Length
Minimum query length in characters. Shorter queries return no results
Number
1
Include Score
Publish the score of each result to the "Search scores" state. Ranking works regardless of this option
Checkbox
Yes
Should Sort
Sort results by relevance (best matches first). If disabled, results keep the original data order
Checkbox
Yes
Location
Position in the text where a match is expected (0 = beginning). Matches closer to this position rank higher
Number
0
Distance
How far (in characters) from Location a match can be before it is penalized
Number
100
Max Query Length
Queries longer than this are truncated. 0 = no limit
Number
32
Each result gets a score from 0 to 1: 0 is an exact match, higher values mean a weaker match. Only results with a score less than or equal to the Threshold are returned.
Element Actions
Start Search
Runs a search with the given value and updates the Search result state. An empty value returns the full list. Values longer than Max Query Length are truncated. If the data is not loaded yet, the query is applied as soon as it is.
Fields:
Title
Description
Type
Value
The search term to find matches for
Text
Update the Data
Reloads the data from the Data Source and repeats the last search on the new data. Changes to the Data Source are usually picked up automatically; use this action to force a refresh, for example after creating or modifying items. No additional fields required for this action.
Exposed states
Name
Description
Type
Search result
Items matching the query, sorted by relevance (if Should Sort is enabled). Contains the full list when the query is empty and right after the data is loaded
Custom Data (List)
Search scores
Score of each item in Search result, in the same order. 0 = exact match, higher = weaker match. Empty when the query is empty or Include Score is disabled
Number (List)
Element Events
Name
Description
Data is loaded
Triggered when the data is loaded and ready for searching. Also triggered after Update the Data and when the Data Source changes.
Workflow example
Here’s a basic workflow example for implementing fuzzy search in your mobile app:
Basic Search Setup
Add the Search Element: Place the Search element on your mobile page and configure the data source and search fields.
The plugin element also works with a simple text data type. If you don't need to search for matches across individual database objects, you can specify the "text" Data Type and pass a list of text to the Data Source.
Configure Search Parameters: Set an appropriate threshold (0.6 is recommended for most use cases), enable case sensitivity if needed, and keep Min Match Length at 1 so that short queries still return results.
Create Search Workflow: When a user types in an input field, use the “Start Search” action to trigger the search with the input’s value. When the input is cleared, the Search result state contains the full list again.
Display Results: Use the “Search result” state to populate a repeating group with the search results.
Show relevance (optional): To display how well each item matches, use Search scores:item #Current cell's index inside a repeating group cell. Make sure Include Score is enabled.
Advanced Search Configuration
For more sophisticated search functionality, you can:
- Use multiple search fields to search across different data fields simultaneously.
- Adjust the threshold for more or less strict matching.
- Enable sorting to show the most relevant results first.
- Set location and distance parameters for positional matching.
Troubleshooting
Search result is empty
Check that Min Match Length is not greater than the query length.
If the Threshold is too strict, try 0.6 or higher.
Make sure Field To Search 1 is set and the field contains text.
Results are not in order of relevance
Enable Should Sort in the element properties (elements added before version 1.12.0 have it disabled).
Search scores is empty
Enable Include Score. Scores are not published for an empty query.
Changelogs
Update 27.10.26 - Version 1.12.0
Results are now sorted by relevance; Should Sort is enabled by default.
Added the "Search scores" exposed state; Include Score now controls whether scores are published.
An empty query now returns the full list; the full list is also published once the data is loaded.
Min Match Length default changed from 3 to 1.
Max Query Length is now applied: longer queries are truncated.
Data Source changes are picked up automatically; Update the Data now uses the latest data.
Fixed Case Sensitive in fuzzy matching; empty number fields no longer break the search.
Updated the plugin description and categories.
⚠️
Elements added before this version keep their saved values. Set Min Match Length to 1 and enable Should Sort manually to get the new behavior.