Есть несколько частей к поисковой системе. Вообще говоря, в безнадежно общем виде (люди, стесняйтесь редактировать, если вы чувствуете, что вы можете добавить более описания, ссылки и т.д.):
Гусеничный. Это та часть, которая проходит через Интернет, захватывает страницы и хранит информацию о них в каком-то центральном хранилище данных. В дополнение к самому тексту вам понадобятся такие вещи, как время, когда вы обращались к нему и т. Д. Искатель должен быть достаточно умным, чтобы знать, как часто попасть в определенные домены, подчиняться соглашению robots.txt и т. Д.
Парсер. Это считывает данные, полученные с помощью искателя, анализирует его, сохраняет любые метаданные, которые ему нужны, выбрасывает мусор и, возможно, делает подсказки искателю о том, что нужно получить в следующий раз.
Индекс. Читает материал, который анализирует парсер, и создает инвертированные индексы в термины, найденные на веб-страницах. Это может быть как умны, как вы хотите, чтобы он - применять методы НЛП, чтобы индексы понятий, кросс-ссылок вещи, бросить в синонимов и т.д.
Ранжирование двигатель. Учитывая несколько тысяч URL-адресов, соответствующих «яблоку», как вы решаете, какой результат лучше? Jut индекс не дает вам эту информацию. Вам нужно проанализировать текст, структуру ссылок и любые другие части, на которые вы хотите посмотреть, и создать несколько баллов.Это может быть сделано «на лету» (это очень сложно) или на основе некоторых заранее вычисленных понятий «экспертов» (см. PageRank и т. Д.).
Передняя часть. Кое-что должно получить пользовательские запросы, нажать на центральный движок и ответить; это что-то должно быть умным в отношении результатов кеширования, возможно, смешивания результатов других источников и т. д. У этого есть свой набор проблем.
Мой совет - выбрать, какие из этих интересов вы больше всего, скачать Lucene или Xapian или любой другой проект с открытым кодом, там, вытащить немного, что делает один из перечисленных выше задач, и попытаться заменить его , Надеюсь, с чем-то лучше :-).
Некоторые ссылки, которые могут оказаться полезными: "Agile web-crawler", бумага из Эстонии (на английском языке) Sphinx Search engine, индексации и поиска API. Предназначен для больших БД, но модульных и открытых. "Information Retrieval, учебник об ИК от Manning et al. Хороший обзор того, как создаются индексы, различные возникающие проблемы, а также некоторое обсуждение обхода и т. Д. Бесплатная онлайн-версия (на данный момент)!
Это зависит от ваших любимых языков программирования. Java не подлежит сомнению. Вы код в asp.net, perl, python, php, ...что было бы важно знать, прежде чем любой адекватный ответ мог бы быть предложен :) – Anheledir
эй! проверьте [мой] (http://code.google.com/p/goomez/) ... очень простой поисковик файлов на основе [lucene.net] (http://incubator.apache.org/lucene.net/) – sebagomez
Вы пробовали nutch.net порт из гайки java .... – chugh97