В настоящее время я использую similar_text, чтобы сравнить строку с списком ~ 50 000, который работает, хотя из-за количества сравнений он очень медленный. Для сравнения ~ 500 уникальных строк требуется около 11 минут.Ускорение levenshtein/Similar_text в PHP
Прежде чем запускать это, я проверю базы данных, чтобы узнать, было ли это обработано в прошлом, поэтому каждый раз после inital run он близок к мгновенному.
Я уверен, что использование levenshtein будет немного быстрее, и функция LevenshteinDistance, опубликованная в руководстве, выглядит интересной. Я пропустил что-то, что могло бы сделать это значительно быстрее?
'O (N ** 3)' где N - длина самой длинной строки для 'similar_text' ... ouch. – jason
Какова средняя длина строк? Aaandd ... сколько данных в строке действительно имеет отношение к поиску? То есть, насколько это просто круто? – jason
Средняя длина составляет около 20 символов, и высокий процент данных имеет значение, возможно, 85-95%. Я думаю, что, возможно, это немного перебор, и я мог бы просто использовать полный текстовый поиск в mysql, а затем несколько проверок. – DanCake