Pregunta

Cuando buscas en Google (estoy casi seguro de que Altavista hizo lo mismo) dice "Resultados 1-10 de aproximadamente xxxx " ...

Esto siempre me ha sorprendido ... ¿Qué significa " acerca de " ;?
¿Cómo pueden contar aproximadamente?
Entiendo por qué no pueden llegar a una cifra precisa en un tiempo razonable, pero ¿cómo llegan siquiera a esta "aproximación"? uno?

Estoy seguro de que hay mucha teoría detrás de esta que extrañé ...

¿Fue útil?

Solución

Lo más probable es que sea similar al tipo de recuento estimado de filas utilizado por la mayoría de los sistemas SQL en su planificación de consultas; una serie de filas en la tabla (conocidas exactamente a partir de la última vez que se recopilaron estadísticas, pero en general no están actualizadas), multiplicadas por una selectividad estimada (generalmente basada en un tipo de modelo de distribución estadística calculado muestreando un pequeño subconjunto) de filas).

El manual de PostgreSQL tiene una sección en estadísticas utilizadas por el planificador eso es bastante informativo, al menos si sigues los enlaces a pg_stats y otras secciones. Estoy seguro de que realmente no describe lo que hace Google, pero al menos muestra un modelo donde puedes obtener las primeras N filas y una estimación de cuántas más podría haber.

Otros consejos

No es relevante para tu pregunta, pero recuerda una pequeña broma que hizo un amigo mío cuando hizo una simple búsqueda del ego (y no me digas que nunca has buscado en Google tu nombre). Dijo algo así como

"Wow, ¡unos 5,000 resultados en solo 0.22 segundos! Ahora, imagina cuántos resultados hay en un minuto, una hora, ¡un día! & Quot;

Me imagino que la estimación se basa en estadísticas. No van a contar todas las coincidencias de página relevantes, por lo que lo que (yo) haría es calcular aproximadamente qué porcentaje de páginas coincidiría con la consulta, en función de alguna heurística, y luego usar eso como base para el recuento. .

Una heurística podría ser hacer un recuento de muestras: tome una muestra aleatoria de aproximadamente 1000 páginas y vea qué porcentaje coincide. No se necesitarían muchos en la muestra para obtener una respuesta estadísticamente significativa.

Una cosa que aún no se ha mencionado es la deduplicación. Algunos motores de búsqueda (no estoy seguro de cómo lo hace Google en particular) usarán la heurística para probar y decidir si dos URL diferentes contienen el mismo contenido (o extremadamente similar), y por lo tanto son resultados duplicados.

Si hay 156 URL únicas, pero 9 de ellas se han marcado como duplicados de otros resultados, es más sencillo decir " unos 150 resultados " en lugar de algo como "156 resultados", que contiene 147 resultados únicos y 9 duplicados " ;.

Devolver un número exacto de resultados no vale la pena el costo general para calcular con precisión. Dado que no hay mucho valor agregado al saber que hubo 1,004,345 resultados en lugar de 'alrededor de 1,000,000', es más importante desde la perspectiva de la experiencia del usuario final devolver los resultados más rápido que el tiempo adicional para calcular el total.

De Google mismos: " el cálculo de Google del número total de resultados de búsqueda es un estimado. Entendemos que una cifra aproximada es valiosa, y al proporcionar una estimación en lugar de una cuenta exacta, podemos obtener resultados de búsqueda de calidad más rápidamente. & Quot;

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top