Search by close match I'm looking for a way to get search results, even if people make typos, so apple as a result when looking for aple. Not fuzzy search, but some implementation of, for example, a Levenshtein function. I know I could go the Algolia way and that there's even a plugin for that, but before I pay Algolia for it, I would like to know:


Is there an easy/quick way to do this without using an external service?
If so, would you be willing to share your thoughts on the subject?
Is there an easy/quick way to do this without using an external service?


Nothing easy I can think of.

For Craft 2 (which only supports MySQL), Craft turns those search queries into a MySQL query that can take advantage of MySQL's Full Text Search indexes on the craft_searchindex table, using full text wildcards as necessary for fuzzy searching the beginning and ending of a string.

It looks like the closest thing that MySQL has that might do what you're looking for is SOUNDEX(), but 1) Craft doesn't use that and 2) it doesn't appear that SOUNDEX can be used against full text indexes.

Keep in mind (just like Search Plus) any solution you find is only going to affect front-end searches (not in the CP).

You should add a thumbs-up/comment to this feature request if you'd like to see that change: https://github.com/craftcms/cms/issues/833