¿ Como crear un buscador como Google ?

Yo por lo menos muchas veces me pregunte como crear un buscador tan eficaz y tan rapido como google , hace tiempo en un foro de google encontre estas respuestas que me parecieron interesantes... y hoy decidi postearlo en mi blog

Google no utiliza una base de datos, utiliza indices directamente creados por ellos, con su propio sistema de compresion, y su propio sistema de ficheros. Todo esta desarrollado desde muy bajo nivel, ya que el objetivo desde el principio era un motor de busqueda a gran escala (su primer hito eran 100 millones de paginas). Por eso como veras en el documento, las estructuras de datos están apuradas hasta el bit.

Sobre el tema de SQL, es tentador pensar que con una base de datos ligera (mysql,msql,etc..) se podría gestionar un buscador así, pero la respuesta es que en principio no. Por la cantidad de datos, aunque hicieras un buscador que fuera el 10% de google (2.000.000.000 de paginas), hay serias limitaciones que hay que considerar. Por ejemplo si utilizas mysql, para 10.000.000 de paginas, y sin mucha sofisticacion, en bruto, necesitas 1GB de ram para el índice de palabras, utilizando listas de parada (si quieres busquedas por frases necesitaras otro indice aparte). Debe estar en memoria para dar un buen rendimiento. El problema viene con las variables escalabilidad, rendimiento, y claro, dinero. Si quieres indexar 100.000.000 de páginas, el indice son 10gb (probablemente más, no es totalmente lineal)... necesitas mucha memoria, y aun mas disco, 100.000.000 de páginas no deberían estar en un solo servidor. 1.000.000.000 de paginas, 100 gb de memoria, solo para el indice NORMAL.

Puedes pensar.. mysql cluster, para utilizar multiples nodos, vale, aunque esta orientado mas a la alta disponibilidad que a la eficiencia, necesitarias el espacio en disco para 1.000.000.000 de paginas * (numero de replicas de la informacion) * 1,1 / numero de nodos. Mucha memoria por cada nodo, mucho dinero.

Para igualar a Google sin desarrollar tu propia tecnologia, utilizando bases de datos comerciales, y consultas sql necesitas mucho presupuesto, para mi gusto, para tablas con miles de millones de registros funciona mejor Oracle RAC, aunque necesitas mas hardware

La cuestion es que Google tiene desarrollado un sistema completo, desde bajo nivel, optimizado para busquedas, y preparado para un tamaño descomunal. Las bases de datos normalmente estan pensadas para propositos mas generales, y eso hace que malgastes recursos y no obtengas exactamente lo que quieres.

De ahi la importancia de estructuras de datos como los BigFiles (archivos que pueden existir entre varios nodos de un cluster), etc..

aqui os dejo dos links ( en ingles ) con informacion sobre ello

http://www-db.stanford.edu/pub/papers/google.pdf
http://www.infonortics.com/publications/google/technology.pdf

Tambien venden un libro completo en esta direccion ( en ingles )

http://www.infonortics.com/publications/google/google-legacy.html

Comentarios

Anónimo ha dicho que…
Como todo en la vida los que inventaron Google habrán creado un pequeño sistema y luego lo fueron agrandando y a medida seguía creciendo, habrán ido migrando el sistema para prepararse para algo más grande.

Yo en lo personal no quisiera hacer un buscador como Google, sino me centraría más en soluciones que requieran algún sector de usuarios y crearía aplicaciones para ellos.

Technorati, se imaginó que iba a ser tan popular y reconocido? Creo un sistema desde el inicio preparado para soportar tal carga de usuarios?
No lo creo.
Anónimo ha dicho que…
A lo mejor Google no, pero los desarrolladores actuales tienen claro que es Internet, y que supone crear algo para que funcione Internet. Cualquier herramienta o innovación que se precie, de tener futuro en Internet sabe que se enfrenta a esa posibilidad de popularidad masiva. De lo contrario no serian unos buenos desarrolladores, pues el trabajo de un buen programador, es saber lo que puede traer el futuro. Espero que se pille la alegoría…

Eso es lo fantástico de Internet, su potencial y lo relativamente fácil que es acceder a él.
Anónimo ha dicho que…
Nutch es una buena opción, pero también hay otras opciones muy interesantes con mayor o menor grado de desarrollo, por ejemplo:
Terrier: http://ir.dcs.gla.ac.uk/terrier/
Lemur: http://www.lemurproject.org/
MG: http://www.math.utah.edu/pub/mg/

No todas estas herramientas implementan un sistema de ficheros tipo Map Reduce (que es lo que usa Nutch) pero son una buena base para implementarse un buen buscador sin dedicarle demasiado tiempo.

Para los que les interese ver como funciona Map Reduce http://en.wikipedia.org/wiki/MapReduce tienen una implementación Open Source que es la que usa Nutch llamada Hadoop
http://lucene.apache.org/hadoop/about.html

Y para terminar un video sobre el sistema de ficheros de Google que aunque es un poc antiguo es muy interesante http://www.researchchannel.org/prog/displayevent.asp?rid=2459
SS81 ha dicho que…
La verdad, que los creadores de google supieron utilizar todas las herramientas al nivel mas optimo, una vez lei que tiene varios servidores con RedHat que ellos mismos los optimizan... le llaman googlear servidores algo por el estilo, y ademas tienen un ex super experto en sistemas operativos que trabajo en Dell creo que diseño una forma al parecer demasiado eficaz para que todos trabajen en conjunto y se repartan sus tareas...
Anónimo ha dicho que…
yO QUISIERA HACER UN BUSCADOR
Anónimo ha dicho que…
que necesito para crear un buscador? y cual es el negocio principal de crearlo?
Anónimo ha dicho que…
Yo tambien quise poner un buscador
tipo google pero con lo costoso que es esa tecnologia, mejor me decidi por hacer otra cosa en internet.
Anónimo ha dicho que…
HOLA ME LLAMO JOSE ANDERSON HENRIQUEZ SOY UN APRENDIZ EN PROGRAMACION Y ESTOY INVESTIGANDO Y RECOPILANDO DATOS PARA CREAR UN BUSCADOR DOMINICANO ME ENCANTARIA QUE PERSONAS CON TU CONOCIMIENTO SE UNIERAN A MY GRUPO SY ESTAS INTERESADO EN PARTICIPAR PUEDES ESCRIBIRME A LA SIGUIENTE DIRECCION (JHENRI1402@GMAIL.COM)
TE REITERO QUE SI TOMAS LA DECISION DE UNIRTE A NOSOTROS PODRIAS ESTAR FORMANDO PARTE DE ALGO VERDADERAMENTE GRANDIOSO EN DONDE PERSONAS DE METAS DEFINIDAS PODRIAN LOGRAR CUMPLIR ESTE SUEÑO QUE TENEMOS EN COMUN SIN MAS SE DESPIDEN (Jose Anderson Henriquez y Adriano Reyes).
Anónimo ha dicho que…
YO CREO KE NO ES NESESARIA TANTA PLATA y tecnologia con un poco de publicidad efectiva se puede hacer un buscador nuevo y menos makabro ke google la tecnologia en los ultimos años a estado bajando el costo de los computadores ya hay ekipos con muchisisma RAM , pienso ke se podria hacer algo mas economico como un directorio mundial.

para mi google era muy bueno y normal pues alguien tenia ke hacer el trabajo, pero me dio mucha rabia con eso del navegador de google ke en el contrato le autoriza a dar tu informacion de correo, y las paginas ke miras, con motivos de mercadeo claro.

lo triste es ke esta pagina la encontre en el mismo google...
estoy cANsado de google

en todo caso, es encontrar la forma de direccionar la informacion buscada de manera mas simple con un programa intuitivo es decir como una pulguita ke busca en la red un pulga super rapida y efectiva y no un SUPER archivo de datos.

ZARATUSTRA A.
daviddddd ha dicho que…
Quizas podais ayudarme, tengo un disco duro externo lleno de información no estructurada a la que se le pasado el OCR , me gustaria saber que posibilidades o productos hay para crear un buscador por texto libre que me facilite acceder a informacion concreta SIN TARDAR UN AÑO.
gracias gente ,
un saludo
ITXAS ha dicho que…
NO CREO YO QUE LOS CREADORES DE GOOGLE CUANDO LO CREARON TUVIERAN MUCHO DINERO PARA ELLO.SI HAN HECHO DINERO HA SIDO DESPUES,PERO NO CREO QUE ANTES TUVIERAN MILLONES.SI ALGUIEN ME PUEDE DECIR COMO HACER UN BUSCADOR QUE NO TENGA NADA QUE VER CON GOOGLE LE HAGO SOCIO Y LE DOY EL 1% DE LA COMPAÑIA.
Webs ha dicho que…
Hola, yo tengo en mente crear un buscador, pero con solo unas 10 mil paginas como mucho, sobre algo muy concreto, quería saber que puedo hacer para llevarlo a cabo, tan caro sería para solo unos 10 mil resultados de busqueda?, puedo utilizar el buscador de google de adsense y meterlo en mi pagina?

Saludos y gracias!!
Unknown ha dicho que…
Buenas tardes, he llegado hasta esta pagina, rastreando en Internet, buscando una respuesta a "como crear un buscador", y me ha resultado muy interesante lo que he leido. Llevo tiempo pensando un una idea tan disparatada a priori como esta, maxime desconociendo el mundo de programacion, informatico, etc... pero tengo una conviccion, y es que a nivel publicitario y comercial, se puede crear un buscador "local" con una serie de valores añadidos para usuarios, empresas, y anunciantes.

Entradas populares de este blog

Perdió más de 2 millones de euros al perderme como cliente

Reflexiones de 20 años emprendiendo entre hostias y éxitos.