Search by alternative workds - db design help needed

I would like to design a database that can search related words (by alternative meaning text, or context relevance).
For example, if you search ‘iphone’, it will give results for ‘mobile’, ‘tablet’ as well.

Or, even handle the typo errors, like, search for ‘ifone’ will search for ‘iphone’ successfully.

This would give a good search system. But any ideas how to develop this system?

I would simply create a field with each entry called “alt_search” and fill it with intuitive misspellings, alternative words, etc… and you can search this field along with ‘product_name’ to show results. You could alternatively show 2 searches - one with “exact matches” and one with “suggested matches” based on which field you had a ‘hit’ in.

I hope this helps.