katlog.orgжурнал разработки Демо-каталогДемо
РШ001
Решение2 мин чтения

Фильтры, которые не врут

Число рядом с фильтром — это обещание: столько записей вы увидите, если его выберете. Рассказываем, почему это обещание легко нарушить и как мы его держим.

Фильтры слева от результатов кажутся простой частью каталога. На деле в них спрятано несколько решений, которые определяют, будет ли читатель им доверять.

Katlog: фильтры слева, выбран фонд BIB, остальные фонды видны со своими счётчиками
Выбор одного фонда не прячет остальные.

Несколько значений в одной группе

Читатель хочет книги на английском и немецком одновременно. Значит, внутри группы значения объединяются через «или», а между группами — через «и»: (английский или немецкий) и основной фонд и 1950-е. В первой версии, которую написал агент, в каждой группе можно было выбрать только одно значение.

Честные счётчики

Самая тонкая часть. Допустим, читатель выбрал фонд «BIB». Если пересчитать все группы по отфильтрованным результатам, то в группе «Фонд» останется только BIB — остальные фонды покажут ноль и исчезнут. Добавить второй фонд станет невозможно.

Правильно считать иначе: для каждой группы — по результатам со всеми остальными фильтрами, но без фильтра самой этой группы. Тогда после выбора BIB остальные фонды остаются на месте и показывают, сколько записей добавится, если выбрать и их.

ПравилоЧисло у пункта фильтра всегда означает: «столько записей будет, если отметить этот пункт». Не больше и не меньше.

Мелочи, которые раздражают

  • Год «с — по» применяется по Enter, а не на каждую цифру. Иначе при вводе «1900» каталог успевает поискать 1, 19 и 190.
  • Нулевые значения не исчезают, а становятся бледными — чтобы список не прыгал.
  • Выбранные значения всегда видны, даже если группа свёрнута.
  • Записи без года показаны отдельным числом под гистограммой: они не пропадают молча.