Cómo construir un motor de búsqueda como Google
¿Alguna vez has pensado en construir un motor de búsqueda con todas las funciones que funcione de manera similar a Google o Bing? Google se ha convertido en una de las compañías más grandes en Internet en un lapso muy corto de tiempo. Todos los empresarios de Internet podrían haberse divertido al ver el éxito de Google como empresa. Pensando en la tecnología, ¿cómo funciona Google tan rápido y poderoso? ¿Cómo gestiona google la tolerancia a fallos? ¿Dónde guarda Google todos estos datos de miles de millones de páginas web? ¿Puedes crear un motor de búsqueda como Google? ¿Si es así, cómo?
Bueno, pensando en construir un motor de búsqueda como Google, necesita conocer varios aspectos. En primer lugar, construir un motor de búsqueda como Google no se puede hacer de la noche a la mañana. Se requieren meses o incluso años para rastrear y almacenar todos los datos, y para clasificar los resultados, para que rastree casi toda la web. Pero por lo general, debería poder comenzar a producir los resultados de búsqueda en un par de semanas.
¿Dónde almacena los datos? ¿Dónde guarda Google los datos? Google tiene una base de datos NOSQL única llamada BigTable donde almacenan todos los datos de búsqueda. BigTable trabaja en un sistema distribuido que funciona en un sistema HDFS muy confiable. Este sistema de archivos admite la computación distribuida para admitir miles de notas adjuntas en la red.
¿Qué tecnología debo usar?
No puedes ejecutar google en MySQL. Período. Ni siquiera en Oracle, si está buscando un servicio a escala global. Necesitas tener algo similar a BigTable que funcione en un sistema de archivos como HDFS. Pero BigTable es una tecnología específica de Google y no es de código abierto y no está disponible para el público, excepto que una versión alojada está disponible recientemente en la nube de Google.
Hadoop: Hadoop es una colección de varios componentes / software / herramientas de bigdata, incluido HDFS, que es ampliamente considerado como el MEJOR sistema de archivos distribuido disponible en la actualidad. ¡Hadoop es una fuente abierta investigada y desarrollada continuamente por Apache! Hadoop es el mejor sistema de archivos que puede usar para ejecutar aplicaciones multimáquinas altamente escalables, como motores de búsqueda, análisis, etc. Hadoop lo ayuda a conectar miles de nodos para que funcionen como un sistema de archivos expandible. http://hadoop.apache.org/
HBase: Hbase es una base de datos que funciona en el sistema NOSQL (Not Only SQL), que puede funcionar sobre Hadoop para almacenar petabytes de datos. Aunque está basado en Java y considerado como una base de datos confiable. Hadoop es mantenido por Apache! Http: //hbase.apache.org/
Hypertable: Hypertable es otra base de datos NOSQL que funciona en Hadoop. Funciona en base a C ++ y la empresa Hypertable afirma que el rendimiento es mucho más rápido que el HBase. El soporte de Hypertable también es muy bueno y tiene más flexibilidad en las consultas en comparación con HBase.http: //hypertable.com/
Por lo tanto, para ejecutar un clon de Google, debe utilizar Hadoop + HBase o Hadoop + Hypertable.
¿Qué hardware debo usar?
Por supuesto, entiendo que inicialmente no desea comenzar con su propio centro de datos. Google tiene su propio centro de datos en expansión en todo el mundo. La solución ideal para comenzar sería vincularse con un centro de datos o una empresa de alojamiento que pueda proporcionar una serie de nodos (computadoras) en una sola red. La razón clave por la que los nodos necesitan una sola red es que, al expandir más nodos en el futuro en un sistema distribuido escalable, los nodos en la misma red física pueden mejorar significativamente el rendimiento de su motor de búsqueda.
¿Cómo puedo codificar una aplicación de clonación de Google?
Aquí viene la parte más difícil e interesante de su viaje para crear un motor de búsqueda de clonación de Google. Independientemente de que decida utilizar la tecnología adecuada o la infraestructura adecuada, si el código no es poderoso y está diseñado para administrar la escalabilidad, su araña no será lo suficientemente efectiva. No puedo cubrir los componentes de su lógica de software, algoritmo para construir una araña. De todos modos, el siguiente diagrama que se encuentra en Inout Spider le dará una buena idea acerca de los principales componentes necesarios para construir una araña. Inout Spider es una aplicación comercial (ampliamente considerada como una potente aplicación de búsqueda de datos de motores de búsqueda y un script de clonación de Google estándar) que funciona en tecnologías Hadoop e Hypertable. Así que si no puedes codificarlo tú mismo, te recomiendo que consideres Inout Spider.
Resumen
Construir un motor de búsqueda como Google, nunca es una tarea fácil, o de lo contrario habríamos visto muchos clones de Google en línea. Pero con la tecnología, el hardware y el software adecuados (propios o aplicaciones comerciales como Inout Spider), su sueño es alcanzable.
Renuncia
Por clonación de Google, no me refiero a una clonación de Google exacta. El término Google se usa como sinónimo de "motor de búsqueda". Este artículo está sangrado para ayudarte a crear un motor de búsqueda estándar como Google, Bing, Yahoo, Baidu, etc.