coderisimo
@coderisimo

Как сделать быстрый полнотекстовый поиск по MySQL для поля с автозаполнением?

Есть таблица с 200к + записями. Требуется быстрый поиск по двум полям : тэги и заголовки.
Поиск для автокомплита. Т.е ввели два символа и все заголовки, где есть это сочетание букв и все заголовки в тегах которых есть это сочетание букв должны подгружаться в список.
Читал про возможности быстрой работы , если заранее грузить данные (только заголовки, тэги и ID записи) на клиент и искать без обращения к БД. В том случае все работало прекрасно с 10.000 элементов. Есть подозрение, что 200.000 это немного иная ситуация. Ясно что использование дефолтного автокомплита от JQuery здесь даст тормоза, даже если реализовать кэширование на клиенте и уменьшить delay в настройках этого автокомплита.
Про Sphinx слышал, но не имел с ним дела и не уверен, что данный инструмент здесь будет годен.

Как всегда, буду благодарен за идеи.

Спасибо
  • Вопрос задан
  • 246 просмотров
Решения вопроса 1
opium
@opium
Просто люблю качественно работать
сфинкс тут как раз будет в тему и быстро.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
vawsan
@vawsan
Frontend Developer
Websocket будет быстр, но если его у вас нет в проекте - не факт, что рационально.
На клиент отдавать 200к не вариант, обвалится на большинстве компов.

А так, первое что приходит в голову - ajax с блокировкой всех запросов, кроме последнего. То есть ввели 1 символ - пошел запрос, но если до получения ответа был уже введен второй символ или изменился первый - первую операцию прерываем, а вторая пошла.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы