Вообщем задача сделать список диапазонов фильтра по цене, как в амазоне например
то есть
до 10$
10$ - 100$
100$ - 300$
300$ - 500$
в пхп есть функция получения диапазонов (range()) имея минимальное, максимальное значение общего диапазона и величина шага. Так вот, проблема в интелектуальном определении последнего (шага)
Не хотелось бы фиксированно определять на сколько частей разбивать разницу между максимальной и минимальной ценой, так как допустим такая ситуация: всего 2 товара в категории, товар 1 - 10баксов, товар 2 - 100 баксов. У нас стоит жёсткое значение шага, который разбивает на 3 диапазона цен, но товаров то 2! Это явный ляп, здесь будет уместно показывать "от 10 до 100 баксов" либо даже вообще убрать диапазон
Здесь нужно математическое алго для динамического определения шага разбивки или подскажите, на чём базировать лучше жёсткие настройки шага (я пока додумался максимум до процентного значения от разницы между максимом и минимумом)
Комментарии
Когда я смотрел последний раз решения по фасетам, там вроде было нормальной практикой скрывать пустые фасеты.
Итого, если товара 2, а диапазона 3, и товары попали в разные диапазоны, нет смысла определять "шаг разбивки", как вы говорите - просто лишний фасет не нужно показывать. Имхо динамические разбиения это перебор и оверинжениринг.
Да, это так, но чтобы скрывать фасеты, надо бы чтобы они были А solr сейчас не возвращает расчитанные фасеты по диапазонам из базовой инсталляции, есть вроде компоненты, но сырые...
Ладно, отбой, «перебор и оверинжениринг» 100 пудов. Поставил слайдер