Fuzzy Search

GoalStream supports a feature called fuzzy search. Fuzzy search is designed to let you find information quickly by reducing the number of characters you need to type.

Currently, you can use fuzzy search in two places:

What is a match?

Text is considered a match if it contains all of the characters in the search criteria in the right order.

Let's look at an example.

Cat graphic

Searching for "cat" would match both "cat" and "caterpillar".

No surprises there.

The word "certification" would also be a match.

Notice that the search criteria does not have to match characters consecutively.

However, the characters do have to match in the right order. A word like "celestial" would not match, since the "a" comes after the "t".

Ranking the matches

As mentioned, the purpose of fuzzy search is to make searches fast by minimizing the number of characters you need to type.

However, if your search criteria consists of just a few characters there are likely to be many different matches. We want to avoid having to examine every match, because that could be time consuming.

What makes fuzzy search really useful is how it orders the list of matches. The text that you're looking for is likely to be near the front of the list, so you won't have to waste much time on irrelevant matches.

Each match gets scored based on how well it matches your search criteria. Here's the gist:

  • Every matched character adds a point.
  • Bonus points are sometimes awarded.
  • The largest bonus is for matching the first character of a word.
  • Consecutive character matches get a bonus.
  • Matched characters that are close to the beginning of the text count for more.

You don't need to know exactly how matches are scored in order to use fuzzy search. But having a general idea will enable you to use fuzzy search more effectively.

Strategies for using fuzzy search

  • Try typing only the first character of the first few words.
  • Try omitting the vowels.
  • Search for uncommon characters.