PHP: поиск с помощью поисковых терминов для аналогичного текста на веб-странице - PullRequest
0 голосов
/ 03 июля 2018

Я занят программой, которая должна найти похожий текст на веб-странице. В SQL у нас 400.000 поисковых терминов. Например, поисковыми терминами могут быть «Сан Мигель Бледный Пльзень», «Шаумбургер Бали» и «Ризмайер Кортез».

Теперь я проверяю каждое слово на веб-странице в базе данных. Для каждого слова на веб-странице я отправляю запрос на выборку с оператором% like%. Для каждого результата я использую похожий текст с php. Если слово и поисковый термин не равны количеству слов в нем, он получит несколько дополнительных слов веб-страницы, чтобы сделать его равным. (И да, я знаю, что это не умно) Проблема в том, что это занимает много времени и сервер должен усердно работать для этого.

Какой самый лучший и быстрый способ найти подобный текст на веб-странице?

1 Ответ

0 голосов
/ 04 июля 2018

Оператор LIKE всегда будет медленным, если вы начнете паттерн с подстановочного знака %. Это происходит потому, что вы отрицаете возможность MariaDB использовать любую индексацию.

Учитывая, что вам нужно найти слова в любом месте столбца VARCHAR, наилучшим решением является реализация добросовестного Полнотекстового поиска . См. Обзор полнотекстового индекса MariaDB .

Поиск станет на порядок быстрее, не говоря уже о масштабируемости.

...