[New Plugin] Quick Find Search & Facet Filtering

Hi @ryanck,

Great question. Here is a brief list of the Fuzzy search and autocomplete Plugin limitations that the this Plugin (Quick find search Plugin) doesn’t have:

  • Can’t search a Data type of type Text or Number, (e.g., searching option sets as a list of text or using something like Search for Users:each item's name won’t work);
  • Can’t search fields of type date, geographic address, number, or yes/no;
  • Can’t search nested fields or fields as an Option set;

Performance-wise there are numerous differences:

  • The Fuzzy search is known to crash when trying to search Data types with thousands of records (app crashing);
  • The Fuzzy search is known to have difficulties searching Data from an external API Call;

This Plugin was designed to handle tens of thousands of records (see this example where we search 58k records);

Bonus:

  • Get the highlighted matched results back (e.g., searching car will return carrot);
  • Search special characters and different languages (e.g., Ë, 就);
  • Show results on empty (i.e., will return all the search results when the input field is empty);
  • Prioritize a field for better ranking (e.g., field2 = Cities and you prioritize results with field2 as Mexico city, searching all-inclusive will return this order: Mexico city all-inclusive, Cancun all-inclusive, Tijuana all-inclusive, etc.);

Feel free to reach out if you have other questions.

Happy new year :partying_face:,
Fabrice

2 Likes

Hello @fabrice.latour04

I’m basically using the fuzzy plug-in to retrieve all the information of the company in real time by the VATID on the database.

I see a loading on page load in your demo. So my question is if your plug-in works with the database server or if it downloads all the database to the users browser because I need to work on server due to privacy.

Looking forward to your reply.

Thanks a ton.

Hello @ryanck,

In regards to Privacy rules, just like the Fuzzy Plugin, this Plugin respects all Privacy rules that you define in the Data/Privacy tab.

All the required Data is downloaded client-side from the database server, because Privacy rules are applied server-side the client user will only see what they are authorized to see from those rules.

So in an instance where a user needs to be connected to search the database, a none connected user won’t be able to search because the server won’t return anything.

Hope this helps and feel free to ask more questions,
Fabrice

2 Likes

Hello @fabrice.latour04

Thanks a lot for your reply!

Hello @fabrice.latour04

Great plugin you have here. I am really interested in it but wanted to find if it would solve my problem before i purchase it.

Currently I am running into problems with Fuzzy Search because I have a search box on the home page and another on the search results page. Fuzzy does not perform a search when the input box on search results page is prepopulated because for some odd reason it requires you to type in the input field before it shows the results.

Would Quick Find suffer from the same problems or is it able to perform and show search results even if the input box is prepopulated on page load?

Regards

@fabrice.latour04 Just purchased today and like the features but I think the search results are not operating the way I would assume it would be. If you search “national park” on your demo page main page it is just showing one result when it should show all the results matching national park. I think you’ll see what I mean when you type in “national Park” and then just type “national” you’ll see other results that should be matching “national Park”

Update 1.1.3 :partying_face:

  1. Patch fix for Two way searching didn’t always return all results.
  2. Added the Exact match setting which will prioritize exact matches over searched matches (e.g., with this setting enabled, searching corn will prioritize Tommy loves to eat corn over cornucopia).
    3

Refresh your editor and Upgrade the Plugin to get updated code

1 Like

Hey @agoo7714, enabling the new Exact match setting should fix the problem of not prioritizing Hedera (hbar) over HbarPad (hbarp).



You can test on a list of Crypto coins here and feel free to contact me if you have more requests/questions/issues.


Hello @bubble.pro, yes this Plugin is will detect Initial content and complete a search with the input value on page load if it isn’t empty. I’ve set up an example here for you to test :smiley: .

Feel free to reach out if you have any other questions.


Hello @chris19, thank you for pointing this out :pray:. This issue was coming from the Two Way searching setting which was only returning the best result instead of returning all the results. Update 1.1.3 addresses this issue and you can validate in the Demo app.

Please let me know if you encounter any other problems and feel free to reach out if you have any questions.

1 Like

Hey @fabrice.latour04, you’re a legend. Working nicely now :slight_smile:

2 Likes

I’m sold! Looking forward to using your fantastic plugin.

2 Likes

Feel free to reach out if you have any other questions :smiley: .

1 Like

Hey, @fabrice.latour04,

By this you mean that I can search for an option set?

How can I achieve this?

Thanks in advance :slightly_smiling_face: :computer:

Hello @hacker,

There are multiple ways of using Option sets within an app, but these are two of the most encountered ways of using the Plugin to search them.

  1. Search directly a list of Option sets with multiple attributes (You are not limited to the text field unlike other Plugins so you can search option sets with numbers, addresses, dates and even with attributes as other option sets :tada:)
    See an example here

  2. Search Data types that contain Option sets as a Field Type

  • Data type

And then in the Plugin settings under Nested Fields, you select the Option set Attribute Field you wish to search (e.g., Display).
3
See the QuickFind_Main example here.


In regards to highlighting the parts of the matched fields, this is a default setting.
Highligh3

You can then customize how the highlighting will appear with the Highlight options (currently you can edit the type and the color)
Highlight

The search will automatically output the Matched Fields and highlight the parts matching.
Note: When the Data source is simply a list of text because there aren’t any Fields to search the output Main data will contain the highlighting.


See an example here.

Feel free to reach out if you have other questions.
Fabrice

Thanks, @fabrice.latour04, perfect for my use case.

Two more questions:

  1. Can I search multiple text fields from the same Data Type?

  2. Does the plugin has a Threshold option?
    Captura de Pantalla 2022-01-09 a la(s) 11.18.34

The ZQ Fuzzy Search & Autocomplete have these 2 features.

Hello @hacker,

  1. Yes this Plugin currently allows 3 Text Fields + 2 Advanced Fields (can be Text, Number, Date, Address or Boolean) + 3 Nested Fields. The quantity could be adjusted in the future if needed.

  2. Yes currently the Search threshold which controls the quality of the matched results returned offers 4 options (none, low, medium, and strict). As for the previous setting, more options could be added in the future or even a user-provided value if this becomes desired.
    5

2 Likes

Great, thanks, @fabrice.latour04 :grinning: :computer:

Hey, @fabrice.latour04,

I just bought the plugin and I was using it for a while, and works great.

But I had some doubts (I already read the documentation and still did not understand), here they go:

  1. What does it mean “Facet attribute 1”?
  2. What is the difference between text field, advanced field and nested field?
  3. Is the main data source the three fields (text, advanced and nested) merged?
  4. What does it mean “Exclude targets over”?
  5. I have checked the “Exposed matched fields” option and have the hightlight option activated, but it doesn’t highlights anything.

Thanks in advance :slightly_smiling_face: :computer:

Hello @hacker,

Glad you are enjoying the Plugin. Here are the answers to your questions:

1. What does it mean “Facet attribute 1”?
Facet attribute 1, Facet attribute 2,… are Quick filtering attributes you can add to a related Searched field (e.g., Facet attribute 1 for Searched field 1). If you leave the field empty nothing will happen, but if you put an attribute (e.g., by for Searched field 1) and set the Facet filtering type to filterimage, when a User types by:Tony. This will filter the Data source for only Searched field 1 that is Tony. This is useful for allowing Users the ability to filter by typing. Gmail and Github use this filtering strategy (e.g., label:sales). Take a look at the examples in the Group Focus Example where you can Search and filter Users with date:>= 08/03/2022 gmail.

2. What is the difference between text field, advanced field and nested field?

  • Text fields: Use for fields from the Data Type that are of type text;

  • Advanced fields: Use as additional text fields or fields from the Data Type that are of type number, geographic address, date or yes/no. If the field you choose is of type date the formatting of the exposed Matched field will be from the Date settings in Advanced options;
    image

  • Nested fields: Use as additional Advanced fields, as fields that are Option sets or fields that are another Data Type's field. The QuickFind_Main on the Demo app is constructed as follows:


    This allows you to search nested Data Types and Options sets that the Park Data Type has;

3. Is the main data source the three fields (text, advanced and nested) merged?
Not 100% sure what you mean by merge, but:

  • If you mean if the exposed matched results are merged, Yes.
  • If you mean if the number of searches in the Plugin code is merged, Yes.

4. What does it mean “Exclude targets over”?
This will filter out long search targets that you don’t need to search (e.g., if Exclude targets over= 100, all fields that have more than 100 characters will be eliminated from the search). There isn’t a limit as to what value you can use, this is only to protect from instances where a Database field could have 1000000 characters which would impact the search performance. So as to not penalize the whole search, only long values would be ignored.

5. I have checked the “Exposed matched fields” option and have the hightlight option activated, but it doesn’t highlights anything.
To display highlighted fields in a Bubble Repeating Group, you set the Repeating Group Data source as the exposed QuickFind element 's Main data. Then you use the exposed Matched fieldX corresponding to the text, advanced or nested field you wish to expose and add :item#Current cell's index to obtain the cell value.
image

The exposed field explained:

  • Main data: List of searched Data Source as Bubble objects;
  • X nested data: If the setting matched Nested Data is checked, will return the list of the Nested Data Source as Bubble objects;
  • Matched fieldX: List of searched fields as the type defined in Type fieldX;

If this doesn’t fix your problem, the best way for me to help with debugging would be to share screenshots or give me viewing access to a test app.

Feel free to reach out if you have other questions,
Fabrice

1 Like

Perfect, I understood with the Gmail example. One question. If I have all my fields (Searched field 1, 2, 3, …) without a Facet attribute, the Facet filtering type could be filter or off and not make a difference, right?

Okay, thanks.

Yes, I meant that if the results were merged, and they are.

Ohh, okay, better keep it there.

Great, now it works. Although, I think I found a bug.

I have #292929 with 10% of opacity:

But it seems that it is at 100% of opacity:
Captura de Pantalla 2022-01-12 a la(s) 21.23.43

It should be like this:
Captura de Pantalla 2022-01-12 a la(s) 21.23.18

Thanks for all the detailed explanations :grinning: :computer:

1 Like

Hi @fabrice.latour04

Your plugin looks great!
Basically, i want to do a search where a user selects some keywords like English German.
As a result, I would like a list of people with one of the 2 skills (= OR result) to be displayed.
(and not the people with both these 2 skills - AND result)

Is it possible ? Also, can you use bubble “group by” function on the search results ?
if not, do you plan to implement it in a future release ?

Thanks!