Я хочу создать автозаполнение для полнотекстового поиска с AJAX, PHP и MySQL.
Я ищу правильный способ реализации бэкэнда. Пока пользователь печатает, поле ввода должно давать ему подсказки. Предложения должны быть сгенерированы из текстовых записей в таблице.
Некоторая информация для этих записей: они хранятся в полнотекстовом формате, сгенерированном из PDF, по 3-4 страницы каждая. На данный момент не более 100 записей, и в ближайшие несколько лет они достигнут максимум 2000.
Если пользователь начинает печатать, слово, которое он печатает, должно быть дополнено словом, которое хранится в БД, отсортированным по убыванию вхождений. Следующий шаг - предложить комбинации с другими словами, которые часто встречаются в записях, соответствующих первому слову. Конечно, вы можете сравнить его с автозаполнением Google.
Я думаю о 3 различных способах реализации этого:
Создайте индекс с помощью cronjob, который подсчитывает количество слов и комбинаций за ночь. Пользователь ищет по этому индексу.
Я выполняю поиск в записях с помощью функции 'LIKE "% search%"'. Затем я ищу слово после этого и группирую их по появлению.
Я создаю лог-файл для всех пользовательских поисков и ищу хорошие комбинации, как в 1), поэтому поиск становится более интеллектуальным с каждым поисковым действием.
Как лучше всего начать с этого? Поиск должен быть быстрым и производительным.
Есть ли лучшая возможность, о которой я не думал?