Задать вопрос
Ответы пользователя по тегу MongoDB
  • Подход (алгоритмы и тд) чтобы сделать поиск по параметрам как на Яндекс-маркете?

    Вообще ваша задача как я понял это т.н. фасеточный поиск. en.wikipedia.org/wiki/Faceted_search
    Когда передо мной стояла такая проблема я решал ее таким образом: есть таблица «товаров», в которой все товары.
    Есть справочник «характеристик».
    Есть таблица в которой идут тройки id товара — id характеристики из справочника — значение
    Вся эта база индексируется сфинском. Далее делается примерно как описано в статье: habrahabr.ru/blogs/sphinx/64318/

    Т.е. сначала например пользователь делает поисковый запрос «телефоны samsung». Одним запросом к базе данных мы выводим все телефоны, а используя группировку по id характеристики получаем все характеристики, которые возможны для этих товаров: т.е. например диагональ экрана, операционная система, ну и потом выбираем для каждой характеристики возможные значения, подходящие под запрос. Благодаря мульти-запросам такой поиск работает довольно быстро.

    Потом соответственно пользователю предлагается выбрать характеристики из списка возможных. Ну и в общем то весь алгоритм. За разумное время реализуется, работает довольно быстро, с добавлением товаров в таблицу проблем нет.
    Ответ написан
    4 комментария