As part of our new website redesign, we have upgraded the search for races on the home page. With RunSignup’s increasing popularity, more and more endurance athletes are going to our website to do a search and we want to make this simple for them to find what they are looking for. For example in early February, there are over 1,000 searches per day.

In the past, we used a database search called Soundex, which allows for a “fuzzy” search based on what the database thinks sounds like the word you are looking for. Unfortunately, this yields a poor result since it does not give you control over multiple fields and weights of match. So in the old search, if you looked for “Scott”, it would bring up things like “Scout”, and we would have to order that by date. So the Scott Coffee Run would appear several pages down in the search results.

We have replaced this with a more powerful search capability that Amazon AWS CloudSearch offers which makes it more like a Google search. This time when we search for “Scott”, the race we were looking for comes up first!

Also note the second race has the word “Scottish” in it, so there is an exact match of characters. The Girl Scouts still come up 3rd with having only 1 letter off – a “u” instead of a “t”.
We will be playing with the search parameters and weights based on feedback (so let us know if your race does not come up easily). Here is how we set up the current weights:
Term weights:
- ‘race_name’ => 10,
- ‘event_names’ => 3,
- ‘event_types’ => 2,
- ‘state_abbr_text’ => 6, (ex. MI)
- ‘state_text’ => 4, (ex. Michigan)
- ‘city’ => 4,
- ‘country_abbr_text’ => 4, (ex. US)
- ‘country_text’ => 4 (ex. United States)
Fuzzy Search Rules:
- If a word in the search is 6+ characters, it can be 2 characters off
- 4+ can be 1 character off
- 3- it must match exactly
Also note that the detailed search page is driven from the database still using Soundex since we need to do searches across those various parameters like location and radius. With these other parameters, it is more functional to leave it as a database search – so if you do not refine the results and search for “Scott”, it will come up like the old main page search.
We are thinking about doing a project that allows more powerful search capabilities since we have a fair amount of traffic to this page. Let us know your thoughts on what you would like to see at info at runsignup.com.