Cómo construyen los motores de búsqueda su índice: velocidad, peso y hash

4

Las arañas no se detienen. Se arrastran. Encuentran páginas nuevas, actualizan las antiguas y nunca terminan el trabajo. La web cambia demasiado rápido para completarse. Pero una vez que se recopilan los datos, comienza el verdadero trabajo. El motor tiene que almacenarlo. Tiene que hacer que se pueda buscar.

No se trata simplemente de volcar texto en una carpeta. Aquí importan dos cosas. Primero, ¿qué datos guardas? En segundo lugar, ¿cómo lo organizas?

Por qué falla el almacenamiento simple

Imagina un buscador que sólo recuerda una palabra y la URL donde apareció. Inútil. Obtendría el mismo resultado para “banco” en un sitio financiero y “banco” en una página de turismo ribereña. Sin contexto. Sin clasificación.

Un motor real necesita más. Realiza un seguimiento de la frecuencia. Cuenta la frecuencia con la que aparece un término. Mira la posición. Las palabras del título importan más que las del pie de página. Las palabras en los enlaces importan. Las palabras en las metaetiquetas son importantes. Cada factor recibe un peso.

Esta ponderación es patentada. Google usa una fórmula. Bing usa otro. Es por eso que la misma consulta arroja resultados diferentes en diferentes plataformas. No existe un único orden “correcto” de resultados. Sólo existen diferentes algoritmos que priorizan diferentes señales.

Datos de embalaje ajustados

El espacio de almacenamiento cuesta dinero. Los ingenieros comprimen los datos. El documento técnico original de Google describe el uso de solo dos bytes (16 bits) para almacenar metadatos complejos para una sola palabra.

En esos 16 bits:
– 2 a 3 bits pueden rastrear la capitalización
– 2 a 3 bits pueden rastrear el tamaño de fuente
– 2 a 3 bits pueden rastrear la posición relativa a otras palabras

Parece increíblemente pequeño. Sin embargo, contiene suficiente información para clasificar una página de manera efectiva. Los datos están compactados. Está codificado. Entonces estará listo para el índice.

La solución de la tabla hash

Un índice tiene una función: velocidad. Encontrar datos al instante. Incluso para consultas complejas.

Podrías pensar que el orden alfabético funciona. No es así. En inglés, las palabras con “M” están en todas partes. Las palabras “X” son raras. Un diccionario refleja esto. M es grueso. X es delgado. La búsqueda de “M” lleva más tiempo que la búsqueda de “X” en un sistema mal optimizado debido al desequilibrio de distribución.

El hash soluciona este problema.

Hashing aplica una fórmula a cada palabra. Convierte la palabra en un valor numérico. Este valor distribuye las entradas de manera uniforme entre un número fijo de depósitos. Ignora el alfabeto. Ignora la frecuencia lingüística. Crea uniformidad artificial.

La tabla hash contiene la clave numérica y un puntero a los datos reales. Los datos en sí se pueden almacenar de la manera más eficiente posible. El puntero cierra la brecha entre la búsqueda rápida y el almacenamiento pesado.

Esta separación es clave. No escaneas toda la base de datos. Calculas el hash, vas directamente al cubo y tiras del puntero. Es directo. Es rápido. Maneja la carga.

Por qué esto te importa

La próxima vez que escriba una consulta y obtenga resultados en milisegundos, recuerde la tabla hash. Recuerda la ponderación. Recuerda la compresión. La red está desordenada. Es caótico. Pero el índice lo controla. Convierte el ruido en orden.

Las arañas siguen arrastrándose. El índice sigue creciendo. Y los algoritmos siguen modificándose. Porque si paran, te das cuenta.