En la red existen multitud de documentos a rastrear; los buscadores van reindexándolos y descubriendo los nuevos según van revisitándolos. Pero existe el problema de encontrar documentos duplicados ya sea completa o pacialmente. Además, hay documentos que cambian con mucha frecuencia. Incluso, puede ser que simplemente el documento vaya cambiando una parte del mismo (la publicidad, los enlaces recomendados o algún bloque aleatorio…), lo que podría implicar tener dicho documentos con sólo la variable parcial del mismo.
Otro problema que nos podemos encontrar es el de el rastreo sesgado. Esto suele pasar en los blogs, donde un mismo documento se encuentra en varios sitios pero en una de las páginas encontramos una versión del mismo y en otra parte encontramos una versión actualizada, lo que significa que el indexador se encuentra con las dos versiones del mismo documento, pero el sistema no identifica que son el mismo, con la diferencia de que uno se ha actualizado y el otro no, lo que genera que se marque como contenido duplicado.
Y como esto es algo que no gusta a los usuarios (y mucho menos a los propios buscadores), Google dispone de un sistema, Updating search engine document index based on calculated age of changed portions in a document, que corrige esta situación.
Por un lado tenemos que al recibir un documento, comparándolo con una versión anterior, podemos determinar que parte del documento permanece sin cambios y cuál no, lo que nos puede dar una forma de sacar la edad del fragmento del documento que no ha cambiado. Si esto lo hacemos histórico, podemos disponer de un historial de versiones del documento sabiendo qué parte es la inicial y generando un código único para identificar esta parte del contenido (checksum).
En este momento, cuando se rastrea un documento de nuevo se plantea que el sistema, en ese momento compare el documento nuevo rastreado con una versión que se dispone actualmente, y en base a esa zona parcial se tenga en cuenta si es igual o una versión actualizada. También se podría comparar el resto del documento para ver si ha variado en el tiempo o no. Con este sistema se recalculan los checksum y se determina la edad de cada parte y si ha variado en el tiempo, evitando así los contenidos duplicados.
Cuando se recibe un documento (630) se le asigna una edad (600). Este sistema analiza cualquier elemento dentro del documento (direcciones, meta-etiquetas, cabeceras, códigos de estado…) hasta determinar la edad del documento y de esta forma establecerla (640). Una vez determinado, tan sólo falta pasarlo por el identificador (610) y determinar si la información es nueva (650) o no lo es (660). En el caso de que sea información ya procesada anteriormente, se pasa por la calculadora de checksum (620) y se almacena para su posterior proceso. Otra opción sería la de realizar una lista de secuencias históricas (Longest Common Subsequence -LCS-) de las distintas partes de un documento en vez de extraer sólo lo que se considera la parte importante del mismo. En este caso se compara las edades de pequeñas partes del documento para comparar cada una de las edades de los bloques de forma histórica.
Como detalle, simplemente haciendo peticiones HEAD (y no GET) se podría llegar a determinar de forma parcial si es necesaria la reindexación de esos contenidos o no, con la consecuente reducción de ancho de banda para ambas partes.
El siguiente paso afecta a un sistema de rastreo que busque contenidos concretos (y no rastree sitios de forma general). En este caso este sistema sesgado lo que analizará será las distintas versiones del documento en base al checksum del mismo y determine si un contenido ha variado o no, además de encontrar contenidos duplicados por la similitud de dicho código. De la misma forma se pueden agrupar contenidos en cluster y analizarlos internamente.
El siguiente paso es el de encontrar los elementos duplicados si los hubiese. Para ello se pueden procesar dos fases, una primera que busca contenidos de forma interna y otra que busca contenidos en distintos sitios de la red. En este caso se usa el sistema de comparación de checksum para determinarlo.
La forma de determinar si un documento en concreto (por ejemplo, revisándolo al día siguiente) han cambiado o se ha mejorado sería esta. La idea es sacar la parte importante (el artículo o contenido en sí) del documento y generar un identificador. En la siguiente visita se volvería a extraer esa misma parte y se comprobaría si se mantiene, sin tener en cuenta, en este ejemplo, que la publicidad ha cambiado y por tanto no haría falta reindexarlo.
Y de la misma forma que se puede revisar un único documento, se pueden revisar documentos distintos.. en este caso analizaríamos un documento y se le asignaría unos fragmentos. Con el tiempo vemos que el documento ha cambiado, añadiendo una nueva parte… pero el identificador sigue siendo el mismo ya que el contenido principal permanece igual… en este caso, sí que podemos encontrar otros documentos que disponen del mismo identificador, por lo que esos documentos quedarían relegados a no ser indexados, a aparecer en el índice secundario o simplemente a no tenerse en cuenta.
Y aquí tenemos como resumen el proceso completo paso a paso…
Como conclusión podemos sacar que los documentos que se actualizan con frecuencia no son siempre aquellos que van actualizando su contenido de forma completa, por lo que no han de ser rastreados y actualizados con tanta frecuencia como parece. Además, al determinar las partes importantes de las páginas se genera un sistema antispam y de detección de contenidos duplicados que ayuda a reducir en gran cantidad el índice secundario (y primario) del buscador.
Deja una respuesta