Fuzzy matching for autosuggest

[email protected] Tue, 30 Jun 2020 18:55:45 -0700 (PDT)
Newsgroups comp.databases.mysql
Message-ID <[email protected]>
Hi,
I have a web form, where I'd like what's typed in the search box to be matched against MySQL.

Assume the DB has 3 entries:
1) St. Xavier's
2) St. Joseph's
3) Birla High

I'd like 1) If someone types "x", the autosuggest should show "St. Xavier's". ie. it should show x*, then *x*, then *x, in that order. How do I do this?
2) If someone types "xaviers", ie. without the apostrophe, they should get "St. Xavier's" - how?
3) Someone could type "st" or "st." (ie. with the full stop) or "saint" - they should all suggest "St. Xavier's" and "St. Joseph's" - how to do this?
4) there should be "synonyms" - if someone types "hindi high", they should get "birla high" (hindi high was the old name, which has since changed to birla high, but people might still be searching for the old name).
and 5) Someone could type "birla high mumbai" when the DB has "birla high, mumbai", ie. WITH the comma, in the DB - they should match. How do I do this?

How would this be done? I really don't have much clue how to effect stuff like this in MySQL, I just know a MATCH AGAINST, and I don't really know how that works either. So - can anyone provide any pointers?


Thanks.