Как организовать быстрый поиск подстроки в строке на MYSQL?

Помогите организовать поиск записей из базы. Использую MySQL. имеется 2.000.000 записей. В каждой записи имеется поле состоящее из нескольких слов.

Идея поиска: пользователь вводит начальные символы подстроки. в ответ получает список найденных записей. необходимо найти любое вхождение введенных символов в строке. например: если ввели - 'QWE' то запись 'asd qwE asd' должен найти. в LIKE '%string%' не используется индексация. Какие есть варианты решения?
  • Вопрос задан
  • 4865 просмотров
Пригласить эксперта
Ответы на вопрос 2
@IceJOKER
Web/Android developer
where MATCH(`field`) AGAINST ('*string*', IN BOOLEAN MODE);
Ответ написан
AxisPod
@AxisPod
Ну тупое решение в лоб, выдираются все слова, кидаются в отдельную таблицу, делается индекс по словам.
Делается таблица связей для таблицы слов и вашей.
Ищется по like 'string%', в этом случае индексы даже и работают.
Но в этом случае не будет работать с 2мя словами в поисковой фразе, тут уже надо бить поисковую строку по словам, делать n запросов и брать пересечение.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы