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:
- ‘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)
- 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