Hi Everyone,
I just published a new Plugin for Typesense. Typesense Instant Search gives you Typesense-powered search for Bubble apps, including search-as-you-type, typo tolerance, filtering, sorting, geo-search, mapped result fields, and direct workflow actions for working with records and collections.
What I especially wanted to solve with this plugin is the part that usually gets awkward in Bubble:
You want Typesense to handle ranking, but you still want to return actual Bubble Things so your repeating groups, conditionals, and workflows stay native to Bubble. Running a ‘Do a Search’ and matching unique ids loses Typesenses ranking.
So I built the ability to Return Typesense Results as Bubble Things.
The workflow is simple:
- Search Typesense
- Get Back the ordered hit IDs (a uid associated with your record, can be any field that is text or number)
- Fetch your Bubble Things matching the returned IDs
- Reorder those Bubble Things to match the exact ranking returned by Typesense
So instead of only having to deal with text or JSON, you can keep the relevance ranking from Typesense and still work with Bubble Things in the order users should see them.
The plugin currently includes:
-
Typesense Search element for headless instant search on web pages
-
Search Records action for workflow/native mobile search
-
Return Typesense Results as Bubble Things to return Bubble Things in Typesense order
-
record actions:
-
Get Record
-
Upsert Record
-
Update Record
-
Delete Record
-
-
collection actions:
-
Create Collection
-
Get Collection
-
Update Collection
-
Delete Collection
-
List Collections
-
I left the option so you can map fields from Typsense response into Bubble-friendly outputs like Key 1…Key 10 in case the index you are searching is not part of your bubble database. All you have to do is map the key to your current cells index.
I also took into consideration HOW you can index records into Typesnse. I built an indexing workflow that is very similar to ‘Creating a new thing’ in bubble. You can define a dynamic amount of fields and the plugin will build the JSON record for you instead of you having to deal with JSON syntax. I left the option to work with raw JSON as well in case you have more advanced needs.
Let me know what you guys think of the ranking action. This is something that I had to wrestle with for many apps and I’m happy to have found a solution.
- Sirak | OmniPortl

