What is matching, and how does it differ from search?
In one way. matching can be viewed as a complex type of search. When searching for something, a user enters a word, phrase, or other types of information, and is presented with a set of results that contain the information for which he or she was searching.
Matching is different. Instead of just finding results that contain the user's search input, matching finds and prioritises records that most closely match the search input. Matching is most suited to areas where users want to find very specific results based on a wide range of criteria, often from a very large set of records.
For example, a good application of matching technology could be a dating web site, where a user typically wants to find people who most closely match a complex set of preferences. Another example could be a property web site, where users often search for properties based on a wide range of detailed criteria.
Sounds great, but what does the 'fuzzy' part mean?
Fuzziness is the ability that a matching system can have to make the results it delivers more human. This often means delivering results around the criteria for which the user has searched, rather than specifically with the criteria, and ranking them based on a carefully selected scorers. The result can be much more relevant results ranked in a much more natural manner.
Lets look at an example in the property sector. Someone searching for a new home may typically specify their criteria like this:
- I am a 35 year old man with a wife and two young kids
- looking for a house or bungalow (but really would prefer a house)
- with at least 3 bedrooms (but would consider 2 if they were large)
- preferably in Guildford (but within 5 miles might be OK)
- in the price range £150,000 - £250,000
This is a much more fuzzy and human set of criteria that a typical property search web site may allow him to enter. What he may actually have to enter into a search form would boil down to,
"Show me all the houses and bungalows with at least 2 bedrooms in and around Guildford in the price range £150,000-£250,000."
This search criteria has not captured his preferences in the way that a human estate agent would be able to; he is likely to be presented with a large set of results, many of which would probably be of no interest at all to him. Even worse, his perfect property may be excluded from the results by falling just outside of the price range he specified, for example.
You mentioned 'scorers' -- what are they?
Scorers are the things that allow matching to become fuzzy. They are the magic, in a sense, and they are selected and configured for each different matching application. Each scorer ranks the results according to the matching criteria that it's looking at, and the way it has been designed.
Let's look at an example scorer for the price range of properties. In our example above, a person searching for a property would typically be asked to specify an exact price range that they are searching within. This has a few disadvantages,
- it may eliminate properties that are just outside the specified price range, but which may have been ideal
- the price range options that the user has been presented with may be completely unsuitable for him or her
- the user may be given a lot of results that are of little of no relevance
- this system has no way of knowing where in the specified price range the user would ideally like to buy, and as such, can't rank properties effectively
By using a scorer for this problem, a matching system can deliver much more relevant results. A scorer could be designed to allow the user to specify his or her ideal price, and rank properties according to how close they are to that price. For example, if the user specified £200,000 as his ideal price, properties could be ranked accordingly:
- £200,000 -- 100% match
- £210,000 -- 90% match
- £220,000 -- 80% match
Combined with other scorers for ranking properties compared to the specified location, number of bedrooms and other factors, very human, natural results can be returned to the user.
fuzzydb project launched on GitHub
Today, we've migrated ... read more.
Whirlwind Goes Open Source
When the partners in Whirlw... read more.
We're very pleased to announce the launch of our brand new ... read more.
Whirlwind Match Limited
87 Lovell Road
Cambridge, CB4 2QW
+44 (0) 7768 327 878