Search Improvements 🔭

We’ve improved the accuracy of the search.

Previously querying for something that was an exact match wouldn’t show up. Now it will :slight_smile:

The following images are old on the left, new on the right.

This exact matching mismatch may have also happened when searching with characters or pinyin:

In general, the lossy matching improved. We’ve implemented an ordering on the item’s properties, resulting in searches that correlates more to the query.

It’s not that the first query is necessarily wrong. It’s just that it’s picking items based upon whether any of the item’s properties match (i.e. alternative meanings). It didn’t take into account how relevant that property is or how close it is to the search. Of course, the label you see next to the item should be prioritized above all else :slight_smile:

Here are the docs on the curriculum search that shows all the different ways you can query.

More improvements to come. Happy studying!


Just me with my very nice to have ideas:
Thought about including word similarity in search? For example if “headstone” exists with no alternatives, but one searches for “tombstone” it would be nice to find the most relevant item.

Relevant python libraries, but it’s probably included in a lot of standard search modules atm, no?

Which stack are you using btw? For future unasked suggestions :sweat_smile:

I use the search functionality frequently and have definitely noticed the improvements. Love this! Thank you! :smiling_face_with_three_hearts:


Thought about including word similarity in search?

The similarity in search is an interesting idea. Though it seems computationally expensive to use NLP libraries, I could be wrong. It may be more effective to load in synonyms from dictionaries and query against that. i.e. tombstone → query dictionary → found headstone & stone and display ones related to those. :thinking:

Which stack are you using btw? For future unasked suggestions :sweat_smile:

Our stack is Elixir/Phoenix. :slight_smile:

You can read more about our choices from these two blog posts.