Как Amazon Faceted Search так быстро?

Найдите термин на amazon.com, например "переполнение стека", и результаты поиска вернутся очень быстро.

В левой части окна есть фасетный поиск, который показывает в определенных категориях, количество продуктов, соответствующих этому термину.

Затем вы можете развернуть эти термины. Например, существует 1094 книг, которые соответствуют термину, который разбит на "Компьютеры и Интернет" (1003), "Наука" и т.д.

Учитывая, что поиск книг охватывает содержание некоторых из этих книг, мне кажется, что это очень впечатляющий подвиг.

Как это делает амазонка? Массовое распараллеливание? например, каждый node знает о нескольких продуктах?

Кстати, я увидел, что в тексте "Душа новой машины" появляется "переполнение стека", книга, которую я помню с 1981 года.

Ответ 1

Короткий ответ - это много индексирования. Более длинный ответ: много индексирования, много избыточности, много кэширования и интеллектуального разбиения.

Реальный ответ - прочитайте эту книгу: http://www-csli.stanford.edu/~hinrich/information-retrieval-book.html

(Это бесплатно, и это очень хорошо).

Ответ 2

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