Я работаю с mySQL и PHP уже несколько месяцев и создаю функцию поиска для своего веб-сайта. Эта функция поиска имеет фильтр и панель поиска. В настоящее время фильтр реализован с использованием функции «ГДЕ» mySQL, с помощью которой я исключаю любые строки, которые не соответствуют требованиям фильтра, чтобы избежать большой передачи данных из mySQL. Я хотел бы сделать это и для панели поиска, но хочу использовать функцию levenshtein PHP между заголовком страницы и поисковым термином.
Может ли кто-нибудь иметь представление о том, A. возможно ли это, и B. как это можно сделать? Также возможно C .: я должен даже волноваться о размере базы данных, которую я передаю от mySQL? В какой момент это вызывает серьезную задержку для пользователя?
Пример того, как я реализовал реализацию фильтра, которая автоматически генерируется в функции PHP, которая вызывается с помощью AJAX.
SELECT title, coverphoto, highteavegatag, pagename, totaltimemin, totaltimemax, preptimemin, preptimemax, date FROM recipes WHERE ((LOCATE('french',cuisine) > 0) AND (LOCATE('dutch',cuisine) > 0)) AND ((dietglnpv & 2 = 2) AND (dietGLNPV & 4 = 4)) AND ((LOCATE('sweet',pagecategory) > 0) AND (LOCATE('diner',pagecategory) > 0)) AND ((totaltimemin <= 331) AND (totaltimemax >= 85)) AND ((preptimemin <= 45) AND (preptimemax >= 28))
И идея того, что я хотел бы добавить (я знаю, что это не сработает, но, возможно, есть способ).
SELECT (...) FROM recipes WHERE (...) AND (levenshtein(searchstr,title) < 10)