Pull to refresh
2
0
Send message
  1. Полнотекстовый поиск - это отдельная история, по которой можно написать отдельную статью. Здесь это сознательно оставлено за рамками, и в момент реализации описанного функционала такая задача еще даже не стояла. Сейчас пользуемся для этого сторонним сервисом (хотя лично я конечно от такого решения не в восторге :)) Если запилим свой - напишем

  2. Фильтры для пользователя - тоже отдельная история. Они у нас есть, и пока они работают как и раньше на скуле покрытые кешем с прогревом для топа регионов, и их мы на эластик еще даже не перенесли. Поэтому я описал фильтры только со стороны того, как они используются при формировании подборок.

    Спасибо за статью!

По размеру каталога ответил выше. Что касается иерархических данных: в определенном смысле иерархия есть - варианты являются подмножеством продуктов. И сложности, связанные с этим, в статье я тоже привел. Да, они есть, но работать с этим вполне можно.

Согласен, цифр не хватает. Исправиляюсь :) Параметры каталога:

  • Около 20К товаров

  • Около 200К вариантов

  • Около 700 подборок. Многие из них имеют довольно большое количество фильтров, самое большое - на данный момент аж 194

  • Атрибутов порядка 150

  • Значений атрибутов порядка 50 тысяч

Конечно это довольно скромные цифры, все-таки мы не Мвидео, а магазин одежды )

Бек написан на PHP/Laravel, Эластик на одном инстансе (размещение облачное), на данный момент 12 ядер и 12 гигов памяти, но это с запасом: сейчас низкий сезон, и нагрузка даже в пиках не превышает 30%.
Rps чисто на каталог товаров - около 150.
Горизонтально не скалировали. На Opensearch пока тоже не переходили.

Information

Rating
Does not participate
Registered
Activity

Specialization

Backend Developer
Lead
PHP
Laravel
PostgreSQL
SQL
MySQL
Redis
Elasticsearch
Docker
Git