2008-09-28 15 views
2

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

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

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

ответ

2

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

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

1

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

«Ничего себе, около 5000 результатов всего за 0,22 секунды! Представьте, сколько результатов это за одну минуту, один час, один день!»

+0

Смех вслух (так не позволяю мне просто набирать LOL, grrr) – 2008-09-29 13:06:57

+0

Хе-хе ... Это действительно должен быть комментарий, хотя и не ответ. – Ponkadoodle 2011-05-23 00:22:09

-1

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

От самого Google: "Google's calculation of the total number of search results is an estimate. We understand that a ballpark figure is valuable, and by providing an estimate rather than an exact account, we can return quality search results faster."

1

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

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

1

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

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