Откуда панель навигации берёт категории и бренды
Почему новая категория появляется в панели навигации не сразу, почему поиск находит совпадение в середине названия и почему рядом с категорией нет числа товаров
Панель навигации на экране Товары читает названия категорий и брендов не из каталога напрямую, а из поискового индекса — отдельной копии названий, подготовленной для поиска по части слова и для сортировки по алфавиту. Из этого следуют три особенности, которые видны в интерфейсе.
Почему новая категория появляется в панели не сразу
Импорт каталога пишет категории и бренды в каталог, а поисковый индекс обновляется следом за ним. Между двумя этими моментами панель показывает прежний состав дерева, хотя товары нового импорта уже в таблице.
По той же причине строка, только что отправленная в архив, меняется на месте, а не после перезагрузки списка: платформа обновляет её прямо в панели, потому что перечитанный из индекса уровень какое-то время ещё отдавал бы прежнее состояние.
Разрыв невелик, но на каталоге в сотни тысяч категорий он заметнее, чем на маленьком. Если сразу после импорта категории в панели нет, стоит перезагрузить страницу чуть позже, а не искать ошибку в фиде.
Почему поиск находит «фон» в «Смартфоны»
Обычный поиск по началу строки на каталоге бесполезен: пользователь чаще помнит середину названия, чем его начало. Поэтому платформа при индексации режет каждое название на фрагменты длиной от двух до девяти символов и ищет запрос среди них.
Отсюда два краевых случая, которые иначе выглядели бы как поломка. Запрос из одного символа не совпадает ни с одним фрагментом, поэтому платформа трактует его как первую букву названия. Слово длиннее девяти символов тоже не совпадает ни с одним фрагментом, поэтому оно ищется по первым девяти символам: «холодильники» и «холодильник» дадут один и тот же результат.
Границы фрагментов выбраны как компромисс: чем шире диапазон, тем больше места занимает индекс и тем дольше идёт его обновление.
Почему рядом с категорией нет числа товаров
Число товаров в ветке напрашивается рядом с названием, но стоит дорого. Такое число нельзя хранить рядом с категорией: товар входит и в неё, и во всех её предков, поэтому счётчик каждой видимой строки приходится пересчитывать по всему каталогу компании при каждом открытии панели. У крупных каталогов это десятки миллионов записей на одну прокрутку списка.
Платформа считает товары один раз, уже после того как отбор применён. Счётчик над таблицей показывает, сколько товаров нашлось в выбранной ветке, вместе с общим числом товаров каталога.
Как пользоваться панелью — см. инструкцию по навигации в каталоге. Точные правила поиска и размеры страниц — в справочнике по панели навигации.