Я построил поисковую систему почти таким же образом, но я создал перекрестную таблицу, связывающую каждое слово с каждой страницей, на которой оно встречалось.В этой таблице я также сохранил количество раз, когда слово появлялось на странице по отношению к длине страницы.Я подсчитал, если хотите, процент слов на странице, которые были этим словом.Это облегчает применение веса к вашему результату поиска.Но, к сожалению, сложно определить, является ли страница более релевантной другими способами.Google использует некоторые приемы, такие как расстояние между двумя ключевыми словами на странице.Если они близки друг к другу, они, вероятно, связаны.Если ключевое слово выше на странице, это, вероятно, более важно, и так далее.
Но Google также использует совершенно другую структуру базы данных, которая лучше построена для такого рода запросов.Это может быть трудно встроить в MySQL.
Вы можете попробовать, поможет ли индексация MySQL в FullText.Он индексирует ваши страницы, и вы можете делать запросы, используя MATCH, который возвращает оценку для каждой строки.Я не знаю точно, какие формулы здесь используются, но это кажется довольно умным.
Если все ваши страницы общедоступны, вы можете рассмотреть возможность использования пользовательского поиска Google или чего-то подобного.Это сэкономит вам много времени.