Ken, О размере ключа речь не идет :)
Речь идет о размере хэша и его уникальности.
Почитала тут всякие весчи :) Действительно, гарантии исключения коллизий не дает ни одна хэш-функция. Что плохо...
... я плакала... :D
Похоже, это шоты из какого-то ролика. Посмотреть бы ролик.
Joy,
Вообще-то я имела в виду IRC. Только что-то у тех ботов на DCC очень большие очереди. Я ждать задолбалась... а может, это мой клиент глючит...
Interitus,
Там ведь 32-битный хэш?... А вероятность совпадания хэшей не знаете какая?
euhenio, У меня тоже была идея. Но вообще сейчас я все это бросила. По слогам - неплохое решение...
Вы хотите, чтоб на букву был 1 байт. Хе-хе...
Хэширование ж кодирует по слову, а не по букве. Возьмите 4 байта - это 32 бита. 2 в 32 степени - дофига. Сколько это получится слов?
Другой вопрос - вероятность слипания (одинакового хэша для разных слов), действительно. Ее нужно всемерно уменьшать...
Хэширование здорво индексирование ускоряет...
Обычно вес слов зависит от трех критериев
1. Принадлежность к тэгам (title, h1...h6, u, к примеру)
2. Частота слова в конкретном документе (т. е. количество этого слова :) )
3. Удаленность от начала документа...
Ну, и еще куча всяких заморочек
Задача - из любого слова получить 4-байтное слово (другими словами уникальное для слова число) методом хэширования (необратимое тоже подойдет :))
Пошла качать и перечитывать Кнута. Там, вроде, в 3-м томе, если ничего не путаю, есть описание похожего...
Chuck,
А не заморачивается не получится... любишь кататься - люби и саночки, значит, возить...
Индексацию лучше рассматривать как отдельный процесс. В нем есть свои тонкости: парсинг html-контента, определение веса слов, морфологический разбор, наконец. Даже если у вас получится совместить два процесса, чтоб они работали экстра-мега-супер-быстро, над индексатором работать желательно отдельно.
Библиотеки там подгружаемые... ну, у кого как :) Думается, лучше ползание по сети и индексацию распараллелить. И кто вам сказал, что качать придется дважды?
Cherny, Вы, безусловно, правы. Правила роботов - есть правила роботов.
:)
Vyacheslav Tikhonov,
Лучше, наверное, на С++.
Структура БД, как мне показалось - не самое сложное. Сложнее построить демона так, чтобы он работал многопоточно, по графику, чтобы он правильно понимал, куда идти по ссылке, куда редиректить, понимал ответы сервера, читал фреймы, (robots.txt - это когда ваш агент-поисковик уже имеет имя в Сети) и извлекал из доков правильные ссылки, а потом разбирал, когда и как их обрабатывать.
Опять же, неплохо приаттачить к этому демону независимый мониторинг - чтобы смотрел, что и сколько качается в каком потоке в данный момент, что висит, что вообще failed...
Кроме того, не все, скажем, узбекистанские, сайты будут в области .uz. Надо смотреть, к узбекистанской ли сети принадлежит айпишник. Ну и куча других мелких проблем.