Существует много вопросов относительно полнотекстового поиска с помощью MySQL, и я прочитал множество из них, не найдя того, что ищу (в google или stackoverflow).
Я не ищу совпадения строк (илидокументы), но я ищу совпадения слов, содержащихся в строках.
Например, представьте, что у вас есть таблица компаний с идентификатором, именем и столбцом small_description.Вы можете найти строки вроде:
1 | MyBaker | fine bakery since 1920
2 | Bakery factory | all the materials for a bakery
etc...
сейчас, когда пользователь вводит «bak», я хотел бы предложить ему слово «пекарня» (и я не хочу прямо предлагать ему MyBaker и Bakery factory.поскольку есть сотни компаний, которые будут соответствовать, но только несколько разных слов)
Я думаю, что базовый полнотекстовый движок mySQL уже имеет своего рода «поиск слов», поэтому я бы хотелиспользуйте это вместо самого анализа имени и small_description для воссоздания другой таблицы со словом |nb_occurences
(не говоря уже о том, что может быть трудно поддерживать синхронизацию, если в другой таблице выполняется много обновлений для уменьшения счетчиков :()
причина этого заключается в том, чтосоздать автозаполненный поиск, где предложения слов будут соотноситься с содержимым базы данных
Например, amazon (.fr) выполняет довольно ужасную работу. Если вы наберете "tel", он предложитдюжина «телефонных» совпадений и 0 «телевидения», «телескопа» или «телеметрии» ...!
, хотя на настольном компьютере, где ввод полного слова происходит быстро, это не проблема, для мобильных устройств это действительнопроблема
, которая усугубляется тем фактом, что некоторые слова, предложенные клавиатурой смартфона, отсутствуют в моей базе данных И что некоторые слова моей базы данных никогда не предлагаются клавиатурой смартфона.
для примераВ моей базе данных 0 телефонов и телевидения, но много телеметрии и телеконференций
наконец, я также хотел бы простить плохое написание, если это возможно (например:телме должна соответствовать телеметрии)
Я надеюсь, что кто-то может помочь мне использовать существующий полнотекстовый индекс для достижения моей цели