Friday, March 9, 2012

Handling search on Recipe/Cooking Apps

You might be surprised the number of recipe apps out there. ~200 apps just for Indian Cooking in Android market alone. You will also be surprised how many of these apps provide search !!. Not so many :(.  We frequently get similar reviews from our app users

The search feature is the most used feature on our app, with more than 4000+ recipes its the easiest way to locate the recipes. Our search feature is quite extensive, apart from the regular search by name you can search by the region (Andhra, Tamil etc) or even by the Cooking Time.

Recently we have been capturing the search queries to figure out what recipes people look far, and so we can focus on adding the popular ones to our repository.

To our surprise we found something new. Lot of searches actually have spelling errors, one example is "Chiken" has been searched for almost 50 times in a day instead of "Chicken". Even though we do suggest the users an alternate word using Spell Suggestion through Bing API. ( Below is how the Bing Spell Suggestion works.

The third party suggestion services has a limit. For example another search "dall" instead of "dhal" is suggested as "doll" from Bing, so we went ahead to build our own suggestion service. Below is the way it works

1. If the user keyword has no results, we will run the keyword through our suggestions list
2. If there is a suggestion we will use that suggested keyword and return the results to the user.

The benefit of the above approach is we can control the suggestion, so if you search for "chiken" we automatically return "chicken" recipes. If you search for "dall" we return you "dhal" recipes. The only downside is it takes some manual work. But it has a huge impact on the user, since he dont have to remember the exact word of some complicated dishes like "aloo shimla mirch".

If you want to build something similar, here is the sample to start with

Incorrect Keyword
Correct Word
chiken Chicken
mashroom mushroom
sandwitch sandwich
kwdhai paneer kadai paneer
chilli con carne chilli corn
dokla dhokla  
aaloo aloo
aalu aloo
brocolli Broccoli
pao bhaji pav bhaji
sahi paneer shahi paneer
chatni chutney
dall Dahl