Bienvenidos sean a este post, hoy veremos teorica y brevemente esta mecanica.
Si vienen de los posts anteriores, una cosa que mencionamos mucho es que la clave de un engine de busqueda es la indexacion. Analicemos como seria el procedimiento, primero con el crawler descargaremos las documentos desde el internet, las procesaremos y esto lo almacenaremos en un indice invertido. Este ultimo modulo es el utilizado por la solicitud de busqueda. Como pueden deducir, las solicitudes de busqueda siempre consulten al indice invertido para una mejor funcionalidad.
Por lo tanto, el crawler crea todo el contenido en el indice invertido y el engine de busqueda divide el contenido en palabras que serviran como referencias para los documentos, este proceso es denominado como tokenizacion. Para entender el concepto de lo comentado anteriormennte, vamos a analizar el siguiente parrafo:
El único sistema seguro es aquél que está apagado en el interior de un bloque de hormigón protegido en una habitación sellada rodeada por guardias armados
Como dijimos antes, el engine se encarga de tomar una frase como la anterior y dividirla en distintas palabras:
El
único
sistema
seguro
es
aquél
que
está
apagado
en
el
interior
de
un
bloque
de
hormigón
protegido
en
una
habitación
sellada
rodeada
por
guardias
armados
Despues de dividido el documento en distintas palabras, el engine se encarga de asignarle a cada palabra un ID. Suponiendo que ese documento es el 1, se puede crear una tabla como la siguiente:
| Palabra | ID |
| El | 1 |
| único | 1 |
| sistema | 1 |
| seguro | 1 |
| … el resto de palabras | 1 |
Pero esto es para el caso de que tengamos un solo documento pero que sucede cuando tengamos mas documentos y obviamente se repitan algunas de estas palabras? Para ese caso, el engine asignara el ID de cada documento donde exista la palabra. Esto hace que la tabla anterior se viera mas habitualmente de la siguiente manera:
| Palabra | ID |
| El | 1, 3, 12, 34, 45, 56 |
| único | 1, 10, 40, 123 |
| sistema | 1, 13, 21, 36, 45, 51, 65, 72, 112 |
| seguro | 1, 4, 11, 15, 21,, 33, 50 |
| … el resto de palabras |
Teniendo cada palabra con un indice, el cual relaciona a esta con un documento descargado, podemos mejorar mucho mas las solicitudes de busqueda del usuario. En que sentido lo mejora? A medida que el usuario va ingresando las letras, este va devolviendo los indices que poseen cada palabra. A su vez, esto permite ayudarnos a mejorar solicitudes complejas. Supongamos que necesitamos buscar sistema seguro, observen estas dos palabras en la tabla anterior:
| sistema | 1, 13, 21, 36, 45, 51, 65, 72, 112 |
| seguro | 1, 4, 11, 15, 21,, 33, 50 |
Para esta busqueda tenemos dos coincidencias en los documentos identificados con el numero 1 y 21. Por lo tanto, sabemos que al usuario debemos pasarle estos documentos como primarios porque contienen los terminos que busca. A su vez, esta solicitud es tambien tokenizada antes de coincidir con los indices. Esto nos beneficia con la normalizacion de las palabras, porque si no es normalizado y realizamos la busqueda como «Sistema Seguro» no nos devolvera ninguna coincidencia. Esto es asi porque al tener mayusculas y minusculas no tendremos una coincidencia pero sobre este tema ahondaremos un poco mas en el proximo post.
En resumen, hoy hemos visto sobre la indexacion de documentos o paginas web, como es su procedimienro muy reducidamente, como se realiza, como podemos compararlo, asi como algunas razones de porque nos benefician. Espero les haya sido de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.


Donación
Es para mantenimento del sitio, gracias!
$1.50
