Como funciona Google, introduccion al indice
Esto pretende ser una introducción a como funcionan los buscadores modernos. Muchas veces me lo pregunte: ¿Como puede hacer una búsqueda entre tantos millones de paginas? ¿Como guarda esa información?. Empecemos:
Primero dejemos en claro una cosa, cuando introducimos una búsqueda en Google (O yahoo, o bing o quien sea) este no chequea en las paginas que tiene almacenadas, el chequea su indice.
¿Que es un indice?
No es un indice como al que estamos acostumbrados en el que se nombran los títulos de los capítulos de un libro, pero se acerca, es mas algunos libros tienen un indice que se acerca mucho mas todavía. Seguramente en algún libro de texto lo han visto, al final tienen toda una serie de términos y junto a cada uno de ellos las paginas donde podemos encontrarlo. El indice de Google funciona asi.
Se crea un indice por palabras, eliminando las superfluas. Es decir tenemos todas las palabras y a cada una la asociamos con una serie de paginas. Mas facil con un ejemplo, supongamos que solo tenemos 3 paginas diminutas indexadas, sus textos son los siguientes:
a. “Juan lava el auto”
b. “Pedro anda en auto”
c. “Marta lava la ropa”
Nuestro indice seria:
- juan -> a
- pedro -> b
- marta -> c
- lava -> a, c
- auto -> a,b
- ropa -> c
Eliminamos “el”, “en” y “la” por ser considerados supefluos.
Ahora supongamos que viene alguien y busca en nuestro diminuto buscador. Si en el cuadro de busqueda introduce: “lava” le daremos como resultado links a “Juan lava el auto” y “marta lava la ropa” y si en vez de eso ingresa “anda” nuestro unico resultado seria un link a “Pedro anda en auto”. Y si introduce “comer” no podríamos darle ningún resultado.
También se podrían hacer búsquedas mas complicadas. Por ejemplo supongamos que alguien busca “lava auto”. Nuestro indice primero buscaría las paginas que tienen “lava” y luego las que tienen “auto” y nuestro resultado serian las paginas que estan presentes en las dos búsquedas.
Por ultimo, para que nuestro buscado pueda ser eficiente debe poder indexar frases y no solo palabras sueltas. Pero creo que esto ya es cosa de otro post.
Seguramente algun dia, ni se cuando, me ponga a escribir sobre como funcionan las arañas (el famoso Googlebot) y como es el proceso de indexado.
Nicolas
30 de enero de 2010
En realidad es un poco más complejo que eso.
Ya que utiliza también un motor para devolver una exactitud en proporción a tu búsqueda.
La lógica que usaste queda chica, porque es utilizada en búscadores creados en PHP (al menos así lo hacemos acá) y no necesariamente en google, que tiene un algoritmo complejo.
En teoría, busca en un indice, pero ese indice se forma con un algoritmo mucho muy por fuera de nuestros conocimientos y esa es la magia de google.-
Si realmente quisieramos comprender a google, tendríamos que comprender mucho más que un motor de base de datos con un indice dado.
con tu misma lógica, BING realiza el mismo procedimiento, pero a diferencia, si ponías ladrones en ese búscador, y como puede pasar en google, muchas veces, una página no tiene nada que ver con el término de búsqueda ingresado.
Pero repito: en teoría tu post está bien.
Ferticidio
31 de enero de 2010
Obviamente que se queda corto, pero es una buena introducción me parece.
Saludos.
Nicolas
31 de enero de 2010
Si, por supuesto que lo es.
Pero sería más interesante hablarlo para realizar búscadores en una base de datos MYSQL por ejemplo.
Teniendo en cuenta que, eliminando algunas preposiciones y articulos, podemos llegar a un resultado más certero, usando también MATCH.
Es sólo una sugerencia
Boo
1 de febrero de 2010
Nicolás: esto es de conceptos.
Warez
13 de febrero de 2010
Buen concepto, me imagino que debe ser un lio de ingenieria como trabaja tan perfectamente el mejor buscador del Mundo…
Buena entrada