В настоящее время я пытаюсь создать функцию поиска для своего сайта, которая позволит пользователям искать других пользователей, используя их полное имя (первое или последнее) или их имя пользователя. Прямо сейчас я создал временный поиск, в котором используется функция LIKE
mysql и% name%, чтобы разрешить использование wild cards. Это очень просто. У меня возникают проблемы с поиском имен, когда предоставляется полное имя, и только сокращенная версия имени находится в базе данных. Например:php mysql search engine
Поиск Ричард только придумает Ричардса, а не Richs. Я очень зациклен на том, как создать что-то, что сделает это, не будучи очень неэффективным. Я собирался использовать SOUNDEX, но это было бы полезно только для английских имен и слов.
Также я хотел спросить, есть ли у него лучшая идея использовать поисковую систему, такую как Apaches Lucene, для индексации баз данных? Я рассматривал это, но не был уверен, что это будет стоить того, поскольку поисковая система будет искать только мелкие полные текстовые строки.
Спасибо
Попробуйте использовать фильтр 'levensthein' http://stackoverflow.com/questions/4671378/levenshtein-mysql-php – elclanrs
Кажется, это лучший способ пойти, но лучший ли он для больших баз данных? Как только информация будет возвращена в базу данных, я буду искать ее в списке более миллиона пользователей. – tiantang