[New Plugin] Quick Find Search & Facet Filtering

Hey @fabrice.latour04

Thank you very much for your response. So I am still having an issue with displaying the correct items from the DB. I’ll bullet point what is happening and show how I have the elements set up. Please let me know if you see anything incorrect.

. When I put the whole list of texts (separated by " ") into the input box it returns zero matches.

Screen Shot 2022-04-19 at 12.59.08 PM

.When I leave 1 text in the text box not surrounded by " " it shows the database item that has a field that matched the text in the input, that’s what I’m after.

. If I add " to either the end, start or both the result disappears from the search.

Here are the setting for everything.

Screen Shot 2022-04-19 at 12.58.35 PM

Screen Shot 2022-04-19 at 12.58.23 PM

For context, the database type is “Song Data” which has a text field called “Contract Address”.

My list of texts is all the NFT contract addresses I hold in my ETH wallet which is returned from an API.

I want to display all the “song data’s” in the DB that contains any of the texts (contract addresses) that I hold in my wallet, my portfolio if you will.

Thank you for any advice, I’m so close to getting this to work!

Any chance anyone else using this plug in has run into this issue I am having? I have the Quick Find plugin placed inside of a reusable element. I have a page that has this reusable element in two locations. One location is in a Group called Dashboard and another is in a group called Agency. I load the page, which defaults to the Dashboard and has the reusable element visible. I can search just fine in this situation.

I have a menu where I click on menu item Agency and the Dashboard group is not visible and now the Agency Group is visible with the second copy of the resuable element. Bubble defaults to calling the A and B for each of these reusable elements. While with reusable element B, I can’t search or do anything there.

I also notice that if I first enter a search on the Dashboard and then go to the menu section Agency and start to search something different, it will retain the search from the Dashboard. I have even reset inputs and you can see the input box on the dashboard is actually empty, but the search is retained somehow so when I search in the Menu Agency reusable I can’t do a different search.

Is there a way to have the same reusable element in two different places on the same page and have this plugin work? Hopefully I am missing something and it can be fixed without too much trouble?

Hey @maw ,

The issue you are experiencing with the RE (Reusable Element) is that they don’t know which input to look for because there might be multiple REs with inputs having the same ID Attribute. What I tend to do in those instances is have a group called number which is just the Current time in UNIX.
image

Then the input ID references that number so the input has a unique ID Attribute.
image

Hope this helps,
Fabrice

Thanks for the idea, I’ll give that a try … as a short term solution, I just removed the reusable from the Dashboard group and added a condition on the Menu section Group to be visible when that Menu Item was clicked and also when Dashboard was clicked. This avoided the potential confusion and I just needed to update the layout a little bit.

1 Like

@fabrice.latour04 Any thoughts on this mate?

I just DMed you. :slight_smile:

Thanks for the info Fabrice. Regarding the bytes for large data types, ok, I was not very aware of that, I’m always thinking in terms of records and not considering very relevant the number of fields/characters. I will have this in mind for DB planning when searching large data.

Regarding nested objects, yes it seems that as deeper is the level of related objects the loading time grows kinda exponentially.

  • However, for the Bubble side I found a way that (for some reasons beyond my knowledge) speeds up the loading, are combinations of “:make static:filtered (with sort)” “:make static:sorted”, “:make static:unique elements:filtered/sorted”.

I’ve been doing further tests with all this, I go to detail here the two key points I see:
Note: If something is wrong, I apologize, I’m not a programmer and I can only test by changing a variable at a time to understand the source of the problem and make progress.

A) Indexing process?
For non-nested objects, for 15k records, I can get the total count of things and start loading the records in the RG almost instantly, however if the data source comes from the plugin it takes more than a minute. This data type I would say is not very complex, just around 15 fields, some related objects, but not very populated.
But, as I said in the previous comment, I guess that this is just because native Bubble can know the total count and start showing a few records without really having processed all the 15k records. While the plugin, needs to have completed the process of all the records to be able to make the search later. Kind of an indexing matter.

  • Preload in custom state list :x:: I tried to preload the data in a custom state and then set plugin to get the data from the custom state. But it does not help, it takes the same time. This is what makes me think something like the plugin needs to process/translate the data to its own schema
  • Preload in a secondary plugin search element :white_check_mark:: If instead of a custom state, I preload the data on a search plugin element, and then set the main search element to get the data from this secondary one, there is no further delay once the data are preloaded. Again, it seems that once it is in its own scheme it works super fast. So this might be a workaround for large data.

B) No update when data source is zero
When the data source has not records, it seems to me that the plugin does not update the list.
I think this causes further issues, like preventing to use filter/sort.

  • If I use the filters before the search (in the plugin search data source or with conditionals that change the data source), if the outcome of the filters is empty, then it seems the plugin get stick with the previous list, and never updates the list to zero, giving a wrong list of records for the user.

  • If I use the filters/sort after the search, it cannot work if the highlight feature of the search is being used, because it changes the list after the search (the number and sort of the records) and therefore the search matched fields and the later list does not match obviously.
    I tried it as a workaround to use the filters

I checked that is not only that visually the list is not updated, even the count of things remains with the previous number and never updates to zero.
I’m positive with this and I guess that this is just something that can be fixed if the plugin updates the list when data source is empty.

Loading status:

  • It would be very nice to have a “loading status” for the search plugin data source, as it is for native bubble. It would help to set conditionals for hiding, changing text, etc. while the data is being loaded. I tried the plugin event for when data is loaded, but it only works the first time, so it is not really fitting with the use of conditionals in the data source.

Just a very little last issue: it seems that the highlight color does not work well. The color ser in the backend does not relate with the color show in the frontend. I think you say something about there is a difficulty in how Bubble handle color codes…

Thanks for your work and help!

Hey,

Sorry for the late reply.

A) Indexing process?

So when you load data in a Bubble Repeating Group with the Layout styles Vertical scrolling and Ext. vertical scrolling, Bubble will actually lazy load the Data. Whereas if you use the Layout style Full list Bubble will load all the Data before displaying the Repeating group. This is exactly how Plugins fetch Data. Did you try loading the 15k records in a Repeating Group with the Full list Layout? The loading speed should be very similar to the Plugin.

In all cases, I agree that lazy loading the Plugin would be nice and I’m in continuous discussion with the Bubble team to see how Plugins can be optimized, but they are putting almost all their effort in optimizing the app builder…

B) No update when data source is zero

I will investigate, but I think you might be right this could be a small bug that was introduced.

C) Loading status

There is actually a Data is loaded Event. I’ve also added an Exposed state Data source loaded on the updated version 1.3.0 of the Plugin that should be published soon, I’ve been so occupied lately and want to add most of the feature request that was asked (i.e., Accent Insensitive, Ability to toggle autoFocus, loading optimization, and more).

highlight color does not work well

Could you send by DM the colors you are having trouble with?

I really hope the plugin gets faster.

I try loading 20 670 things with only 1 text field with average number of characters of 15, so, each letter is 1 byte, so 15 bytes per entry, so, it’s like 0.00031 GB.

And the it doesn’t load in 10 seconds, nor 30, nor 120 seconds later, it loads 420 seconds later (7 minutes from page load).

As a said, the plugin needs to be faster.

Thanks in advance :slight_smile: :computer:

1 Like

Hi @fabrice.latour04 Just experimenting with your plugin and I’m getting unexpected results.

I am loading 2,000 items into an RG from an API. When I enter the search term ‘map’ (for example), it filters but I get a number of results that don’t contain that string at all (as per below screenshot)

I have played around with the settings re exact match, search threshold etc and still the same result.

What am I doing wrong? (also, just in case it’s related - Highlight isn’t working either (the results in the screenshot are highlighted because I’m doing cmd+f )

Hey @wrightj2,

In terms of highlighting, you need to use the Expose matched fields 1,2,3… as shown in this API exemple.
image

For the results showing up can you DM me a page to view this search?

Thanks,
Fabrice

@fabrice.latour04 I’ve been using this plugin on several apps. Really great!

I’ve noticed that whenever I load a page it automatically sets the focus on the search (and opens keyboard on mobile).

Is there a way to prevent focus when loading page?

Hey @ralphlasry,

Sorry for this inconvenience. I fixed this issue on the new version that I haven’t pushed yet because of some QA testing for other upgrades/features that are taking longer than anticipated. :sweat: I really hope to push it this week, as I understand some of these upgrades are bottlenecks for other Bubblers.

Cheers and I’ll be posting here once I push the upgrade for the Plugin,
Fabrice

Great! Looking forward, Thanks

1 Like

Hey, @fabrice.latour04,

Any updates?

Thanks in advance :slight_smile: :computer:

1 Like

@hacker,

The new version won’t have any loading performance upgrades, as it was confirmed by the Bubble team that this is how Plugins load the Data, incrementally 100 entries at a time. This is also how RGs work when you have the Layout Style Full List.

Do you have an ETA for the next release to fix the issue with opening of keyboard?

Thanks, I understand.

But it is not normal that loading 20 670 thins with only 1 text field (0.00031 GB) takes more than 7 minutes to load.

Hi Fabrice,

i bought your plugin. I am facing an issue and hope for ur help.
How can i search a nested list? I have an repeating group like this:
image
image
image
image

I set up the search like that, but i cant find the nested object list (“Mandanten”)?
image
Could u help me?

1 Like

Update 1.3.0

:tada: Hello everyone finally pushing an update to this Plugin with the following improvements!

  1. Improved searching performance for Multi words searching;

  2. Improved searching performance for Exact match filtering;

  3. Improved the Highlight color algorithm to support multiple Hex Color Codes;

  4. Added an Action to Search Without Input. This allows you to search without using an Input box;

  5. Added the Exposed State Data source loaded. This will change from no to yes when the data is fully loaded;

  6. Update Exposed Data when the data source is zero; @atlasproject

  7. Removed automatic input focus on page load. The only autofocus will be Bubbles input focus; @ralphlasry

  8. Added the field option Autofocus input box on the Set facet Action;

  9. :no_entry: Deprecated/Removed: The search option TwoWay searching. This is now optimized and default in the search engine;

  10. :no_entry: Deprecated/Removed: The search option Allow typo. This was impacting too much performance for Long input words x Long targets;

Refresh your editor and Upgrade the Plugin to get updated code


Upcoming features:

  • Allow accent insensitive searches. I’ve implemented it for single text fields, but still, I still need to do performance checks on Data sources with multiple fields; @ryanck @larri.junior
  • Improvements to loading data. In internal testing, I’ve seen that Bubble loads Plugin data differently than Native Bubble Elements (e.g., RGs and Groups). So for now preloading the Data in a separate RG and then referencing that could help loading speed; @hacker

Please let me know if anybody encounters any issues or has any questions,
Fabrice

4 Likes