Hay varias partes a un motor de búsqueda. En términos generales, de manera irremediablemente general (gente, se sienten libres para editar si siente que puede agregar una mejor descripción, enlaces, etc.):
El rastreador. Esta es la parte que atraviesa la web, toma las páginas y almacena información sobre ellas en algún almacén de datos central. Además del texto en sí, querrás cosas como la hora a la que accediste, etc. El rastreador debe ser lo suficientemente inteligente como para saber con qué frecuencia golpear determinados dominios, obedecer la convención de robots.txt, etc.
El analizador. Esto lee los datos obtenidos por el rastreador, los analiza, guarda los metadatos que necesita, elimina los desperdicios y posiblemente hace sugerencias al rastreador sobre qué buscar la próxima vez.
El indexador. Lee las cosas analizadas por el analizador y crea índices invertidos en los términos encontrados en las páginas web. Puede ser tan inteligente como usted quiere que sea - se aplican las técnicas de PNL para hacer índices de conceptos, entrecruzar cosas, tirar sinónimos, etc.
El motor de clasificación. Dado unos pocos miles de URL que coinciden con "manzana", ¿cómo se decide qué resultado es el mejor? Pero el índice no te da esa información. Debe analizar el texto, la estructura de enlace y cualquier otra pieza que desee ver y crear algunos puntajes.Esto puede hacerse completamente sobre la marcha (eso es realmente difícil), o en base a nociones precalculadas de "expertos" (ver PageRank, etc.).
La parte delantera. Algo necesita recibir consultas del usuario, pulsar el motor central y responder; este algo necesita ser inteligente sobre los resultados del almacenamiento en caché, posiblemente mezclando resultados de otras fuentes, etc. Tiene su propio conjunto de problemas.
Mi consejo - elegir cuál de estos intereses que más, descarga o Lucene Xapian o cualquier otro proyecto de código abierto por ahí, sacar la parte que hace una de las tareas anteriores, y tratar de reemplazarlo . Con suerte, con algo mejor :-).
Algunos enlaces que pueden resultar útiles: "Agile web-crawler", un papel de Estonia (en Inglés) Sphinx Search engine, una indexación y la API de búsqueda. Diseñado para grandes DB, pero modular y abierto. "Information Retrieval, un libro de texto sobre IR de Manning et al. Buena visión general de cómo se crean los índices, varios problemas que surgen, así como algunas discusiones sobre el rastreo, etc. ¡Versión gratuita en línea (por ahora)!
Depende de sus lenguajes de programación favoritos. Java está fuera de toda duda. ¿Codifica en asp.net, perl, python, php, ...eso sería importante saber antes de que se pueda ofrecer una respuesta adecuada :) – Anheledir
hey! echa un vistazo a [mío] (http://code.google.com/p/goomez/) ... buscador de archivos muy simple basado en [lucene.net] (http://incubator.apache.org/lucene.net/) – sebagomez
¿Has probado nutch.net un puerto de nutch java .... – chugh97