¿Cuánto costaría construir un motor de búsqueda?

Hay dos escuelas de pensamiento sobre esto.

Una es que necesitará miles de millones de dólares, con la prueba de que todos los competidores que han intentado gastar solo $ 100 millones finalmente han fallado en el mercado. Como ejemplo de análisis que eleva este historial a una conclusión firme, consulte http://www.fastcompany.com/17237…

La otra es que puede necesitar menos de $ 100 millones, debido a dos ejemplos:

  • Cuil creó un índice de 100 mil millones de páginas (similar en tamaño al índice completo de Google) por menos que eso, aunque Cuil posteriormente falló por razones de producto
  • blekko ha creado un índice de páginas multimillonario (similar en tamaño al índice principal de google) por menos que eso, y, posiblemente, el producto resultante es lo suficientemente interesante como para sobrevivir.

¡Supongo que sabremos la respuesta en un año o dos!

El mayor costo de ejecutar un motor de búsqueda de escala Google / Bing / Yahoo es el aprovisionamiento de muchos clústeres capaces de manejar (decenas de) miles de consultas por segundo (qps) y devolver respuestas en unos pocos cientos de milisegundos.

El índice tiene que replicarse porque una sola copia (réplica) no es capaz de manejar tales cargas. No hay reglas estrictas, pero si tiene un solo clúster que maneja de forma confiable unas pocas docenas de qps, entonces está (muy) bien. Esto supone que el índice no está completamente en RAM, como es el caso de Google y algunos de los otros.

Necesitaría cientos de dichos clústeres para manejar cargas de consultas en miles de qps.

Construir un solo grupo no sería tanto. Obviamente, las siguientes son estimaciones aproximadas, pero deberían darle una idea.

Tome un índice de 100 TB, a 10 KB / página, de aproximadamente 10 páginas. Si realiza un buen trabajo al indexar señales IR de página estándar, como texto de anclaje, título, encabezados. tf / idf, etc., junto con un análisis de enlace decente y eliminación de spam, tendría un sistema de clase mundial, que cabría, por ejemplo, en 9 máquinas a 12 TB (por ejemplo, cuatro unidades de 3 TB cada una).

Tal sistema podría tener fácilmente 9 * 32 = 288 GB de RAM, lo que sería suficiente. Una red estándar de 1 GigE debería ser suficiente. El costo sería de alrededor de $ 25K, o menos, si compra un montón de máquinas antiguas de eBay.

El siguiente costo importante sería el rastreo. Es posible que desee consultar ¿Cuánto costaría rastrear mil millones de sitios utilizando servidores / ancho de banda AWS alquilados? para tener una idea, pero espere decenas de miles de dólares para rastrear 10 mil millones de páginas. AWS sería una forma más rápida y fácil, pero varias veces más costosa que configurar y ejecutar los rastreadores usted mismo.

Creo que el mínimo necesario para lograrlo sería del orden de $ 100K, sin contar el tiempo de las personas involucradas. Ejemplos de tales esfuerzos incluyen Gigablast y Duckduckgo.

Greg Lindahl menciona Blekko.com y Cuil, que son (eran, para Cuil) buenos ejemplos, a niveles operativos más altos, pero que aún cuestan mucho menos que los grandes. Cuil, por ejemplo, estaba mucho más basado en disco.

En mi humilde opinión, la solución de menor costo sería un motor de búsqueda distribuido, como mi inicio de búsqueda anterior, Wowd, o Faroo, YacY o Majestic-12. En tales sistemas, la mayor parte del costo se elimina aprovechando la CPU, el disco, la RAM y el ancho de banda de los usuarios.

Considere un sistema de, digamos millones de usuarios, los recursos agregados serían alucinantes: 100TB de RAM, 1 disco PB, 1Tbps de ancho de banda. Pero esa es otra historia, estoy divagando 🙂

ACTUALIZACIÓN: a partir de mayo de 2017, el hardware se ha vuelto mucho más barato, así como el ancho de banda. Por ejemplo, compré una máquina con doble CPU HP DL160 Xeon E5–2680 con 192 GB de RAM ECC y cuatro unidades de 2 TB por <$ 1K en eBay. Se usa, por supuesto, pero funciona y se ve como nuevo y por ese precio puede elegir algunos más como repuestos (obtuve cuatro).

Para el ancho de banda, HE.net, un proveedor de ancho de banda muy bueno que he estado utilizando durante años, ofrece un rack completo (42U) con 1 Gbps dedicado (!) Y 15 A de potencia por $ 400 / mes. Esa es una oferta increíble, un orden de magnitud menos para Gbps de ancho de banda de lo que solía ser hace unos años (DESCARGO DE RESPONSABILIDAD: no estoy afiliado a ellos de ninguna manera). 15 amperios deberían ser suficientes para 4–5 rastreadores de CPU dobles grandes. Con 3 máquinas como las anteriores, obtengo entre 100 y 200 millones de páginas / día, con una descripción general del rastreador capaz (BUbiNG 0.9.12), que creo que es la mejor ahora, capaz de 1–2K solicitudes / segundo con una CPU dual sólida máquina como arriba.

Entonces, por ejemplo, $ 4K para rastreadores, otros $ 4K para máquinas similares llenas de RAM y $ 400 / mes uno podría tener un sistema capaz de rastrear 3–6B páginas / mes, y con 768GB de RAM podría servir mucho desde RAM solo. También podría agregar SSD baratos para acelerarlo aún más.

Es realmente sorprendente lo barato que ha sido el hardware (de segunda mano).

Bueno, depende del valor, la profundidad y el alcance de esa programación. Si nos fijamos en Google, Yahoo, Bing, incluso menos conocidos como Mamma; todos emplean personal y gastos generales que les cuesta generar cientos de miles de dólares por año. Puede comenzar poco a poco trabajando en algoritmos únicos y luego tratando de asociarse con empresas más grandes para patrocinar o agregar a eso.

Estoy de acuerdo con Greg Lindahl en que un motor de búsqueda no necesita millones para ser efectivo o competitivo incluso, pero necesita al menos varios empleados a tiempo completo para trabajar la hora del reloj para comercializar la función de búsqueda, configurarla como única entre los competidores e incluso entonces, cómo hacer que los consumidores lo noten para que pueda generar suficientes ingresos por publicidad / marketing para ser autosuficientes y, con suerte, más adelante competitivos.

Trabajaría en una función de búsqueda única e investigaría los modelos de ingresos (no solo de Google) sino Mamma, SuperCrawler, MetaCrawler, Blekko, Ciul y estudiaría cómo crecieron orgánicamente. Yahoo está tratando de construirse como un portal de entretenimiento, en lugar de un gigante de búsqueda (y esto no ha funcionado para ellos en el pasado si miras Yahoo Pipes, su “red”, Geocities, etc.), pero cómo comenzaron podría ser una investigación valiosa también.