Хорошо. Тогда сделаю пока без учета расстояния между словами.
Дак как же всётаки учесть рассояние м/у словами?
Хранить для каждого слова его позицию на странице (таких записей будет столько, сколько раз слово на странице повторяется). А потом хитро запрос к базе составить, чтобы сортировал по расстоянию м/у словами. Так, и никак иначе? А то база слишком разрастется.
Для itman: нет, аннотация с той страницы, которая релевантна.
Для ЗодчийТеней: Согласен, экономии мало. Может тогда просто дополнительное поле ввести (id_group), которое будет говорить, что страницы находятся на одном сайте? Не сравнивать же каждый раз url-и...
Я имею ввиду сделать с надписью "Еще с сайта (33687)", а показывать одну.
Главная страница - это просто url сайта, а все второстепенные = главная + какие-то дополнения (для того, чтобы при хранении места меньше занимали, и чтобы было понятно, что все они принадлежат одному сайту).
Для itman: Главная страница здесь, чтобы идентифицировать сайт. Например: forum.searchengines.ru - главная, а остальные - вида: forum.searchengines.ru/showthread.php?t=43850. Это чтобы выдавать пользователю не несколько релевантных страниц одного сайта, а одну самую релевантную.
Для ЗодчийТеней: это городская сеть и серверов в ней много.
Может лучше так?
words:
word_id
word
GROUP_ID
urls:
url_id
url
PAGES:
page_id
page_url
url_words
RELEVANCE
---
Здесь GROUP_ID для объединения слов в группу - для морфологического поиска; PAGES - описывает все страницы с одной главной url (из таблицы urls) - чтобы выдавать только одну самую релевантную страницу сайта; RELEVANCE - чтобы учитывать title, description и "жирность написания"...
Как идея?
Может быть. Но охото чего-то своего, и чтобы постепенно его совершенствовать. Думаю пойдет в зачёт преддипломной практики. Да и MySQL я не жалую, буду пользовать Oracle.
Спасибо за ссылки, но там как-то в общих чертах... Короче, того, что мне нужно, я так и не нашел.
Я пишу поисковик для небольшой внутреннйе сети (5-7 тыс. сайтов). spider, crawler и indexer (с безабразным расчетом релевантности) написал, нашел марфологический словарь (130 тыс. слов).
Осталось разобраться, как это всё должно работать :) Чёткой концепции у меня в голове пока нет.