Как реализовать функцию «сохраненного поиска» для веб-приложения с высоким трафиком? - PullRequest
3 голосов
/ 23 июня 2011

Мне было интересно узнать о функциональности «сохраненного поиска», которую можно найти в больших веб-приложениях, таких как eBay. Что вы можете сделать, это сохранить поиск (например, «pentax lens 50mm 1.4») , и каждый раз, когда кто-то выставляет на продажу новый первоклассный быстрый объектив Pentax, который соответствует тем критериям поиска, о которых вы получаете уведомление.

Для меня реализация такой функциональности не является тривиальным упражнением, особенно если у вас есть сотни тысяч сохраненных поисков и десятки новых предметов, поступающих в продажу каждую минуту.

Может ли кто-нибудь пролить свет на то, какой умный метод следует использовать здесь, чтобы получить достаточно эффективную реализацию, которая хорошо подходит для веб-приложений с большим трафиком?

1 Ответ

4 голосов
/ 23 июня 2011

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

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

...