Неточный подсчет поисковых систем (о результатах ххх) - PullRequest
2 голосов
/ 29 сентября 2008

Когда вы ищете в Google (я почти уверен, что Altavista сделал то же самое), он говорит: «Результаты 1-10 из примерно хххх» ...

Это всегда меня удивляло ... Что значит "о"?
Как они могут считать примерно?
Я понимаю, почему они не могут придумать точную цифру за разумное время, но как они вообще достигают этой «приблизительной» цифры?

Я уверен, что за этой теорией есть много теорий, которые я пропустил ...

Ответы [ 5 ]

2 голосов
/ 29 сентября 2008

Скорее всего, это похоже на примерное количество строк, используемых большинством систем SQL при планировании запросов; количество строк в таблице (известно точно на момент последнего сбора статистики, но, как правило, не в актуальном состоянии), умноженное на оценочную селективность (обычно основанную на своего рода статистической модели распределения, рассчитанной путем выборки некоторого небольшого подмножества рядов).

В руководстве к PostgreSQL есть раздел статистики , используемый планировщиком , который достаточно информативен, по крайней мере, если вы перейдете по ссылкам на pg_stats и различные другие разделы. Я уверен, что это на самом деле не описывает то, что делает Google, но, по крайней мере, показывает одну модель, где вы могли бы получить первые N строк и оценку того, сколько еще может быть.

1 голос
/ 05 января 2009

Одна вещь, которая еще не упоминалась, это дедупликация. Некоторые поисковые системы (я не уверен, как именно Google это делает) будут использовать эвристику, чтобы попытаться решить, содержат ли два разных URL одинаковый (или чрезвычайно похожий) контент, и, таким образом, являются дублирующими результатами.

Если имеется 156 уникальных URL, но 9 из них были помечены как дубликаты других результатов, проще сказать «около 150 результатов», а не что-то вроде «156 результатов, которые содержат 147 уникальных результатов и 9 дубликатов».

1 голос
/ 29 сентября 2008

Я предполагаю, что оценка основана на статистике. Они не собираются подсчитывать все соответствующие соответствия страниц, поэтому они (я бы) сделали примерно то, какой процент страниц будет соответствовать запросу, основываясь на некоторой эвристике, а затем использовали это в качестве основы для подсчета. .

Одна эвристика может заключаться в подсчете выборки - взять случайную выборку из 1000 страниц или около того и посмотреть, какой процент соответствует. Для получения статистически значимого ответа в выборке не потребовалось бы слишком много.

1 голос
/ 29 сентября 2008

Не относится к вашему вопросу, но напоминает небольшую шутку, которую сделал мой друг, когда делал простой эго-поиск (и не говорите, что вы никогда не гуглили свое имя) Он сказал что-то вроде

"Ого, около 5000 результатов всего за 0,22 секунды! Теперь представьте, сколько результатов это за одну минуту, час, один день!"

0 голосов
/ 29 сентября 2008

Возвращение точного количества результатов не стоит дополнительных затрат для точного расчета. Поскольку не так уж много пользы от знания того, что было получено 1 004 345 результатов, а не «около 1 000 000», с точки зрения конечного пользователя более важно возвращать результаты быстрее, чем дополнительное время для расчета итогов.

От Google сами: "Расчет Google общего числа результатов поиска является оценочным. Мы понимаем, что приблизительная цифра является ценным, и, предоставляя оценку, а не точный аккаунт, мы можем быстрее вернуть качественные результаты поиска."

...