LINUX.ORG.RU

mongodb фасетный поиск.

 


0

2

У большинства проектов медленной частью является фасетный поиск. Как с производительность у mongodb по сравнению с mysql, postgresql? У кого есть опыт с количеством товара больше 100 000 и у каждого товара больше 5 комбинаций.

★★

Последнее исправление: webmak (всего исправлений: 1)
Ответ на: комментарий от Siado

Не знаю кто такие мвидео. Но большинство моих клинтов стартуют от 50 000. Причем тематики разные, от запчастей до шмоток

webmak ★★
() автор топика
Ответ на: комментарий от slyjoeh

3-5 секунд не предел мечтаний. 100 000 это позиции у которой есть по пять различных модификаций. И не забываем о cpu

webmak ★★
() автор топика
Последнее исправление: webmak (всего исправлений: 2)
Ответ на: комментарий от webmak

3-5 секунд не предел мечтаний. 100 000 это позиции у которой есть по пять различных модификаций. И не забываем о cpu

Так а в чем у тебя с монгой проблема-то?

Siado ★★★★★
()
Ответ на: комментарий от webmak

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

Siado ★★★★★
()
Ответ на: комментарий от webmak

А зачем для этого использовать саму СУБД? Почему не использовать тот же Solr? Вроде бы sphinx тоже это умел.

xpahos ★★★★★
()

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

nikolnik ★★★
()
Ответ на: комментарий от xpahos

А есть боевой опыт? Почитал что эластик справляеться за милисекунды. Попробую с ним поиграться.

webmak ★★
() автор топика
Ответ на: комментарий от webmak

Да есть. Можно еще почитать http://highscalability.com/blog/2013/12/2/evolution-of-bazaarvoices-architect...

Вообще твоя задача это не SQL запросы гонять, а построить индекс для документов в виде хэшмэпа и дальше искать пересечения сетов в зависимости от id определенного атрибута товара.

Телевизор: { HD = 1, fullHD = 2, 4k = 3 } { 20" = 1, 24" = 2, 26" = 3 }

Дальше в бакеты по id параметра кидаешь id товара и считаешь пересечение по этим бакетам. Сложность поиска будет невелика, но расход памяти сильно увеличится.

xpahos ★★★★★
()

А какой именно запрос тормозит? Скорее всего или сам запрос кривой или индексов не хватает.

ya-betmen ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.