Фильтр дубликатов
Описание
Фильтр дубликатов — это модуль, который предотвращает повторное отображение одних и тех же рекомендаций на странице. Он работает, сохраняя идентификаторы (ItemId) уже показанных товаров и исключая их из новых наборов рекомендаций.
Это важный инструмент для улучшения пользовательского опыта, так как он помогает поддерживать разнообразие контента в различных блоках рекомендаций на странице.
Обратите внимание
Модуль фильтра дубликатов используется не во всех блоках. Его наличие зависит от конфигурации конкретного блока и сценария. Поэтому удаление фильтра актуально не для всех случаев.
Зачем нужен фильтр дубликатов?
Фильтр дубликатов решает несколько ключевых задач:
- Уникальность рекомендаций:
Если на странице есть несколько блоков, например, "Похожие товары" и "Часто покупаемые вместе", фильтр гарантирует, что одни и те же товары не будут отображаться в каждом из них. Это делает рекомендации более интересными и полезными для пользователя. - Избежание повторов:
Повторяющиеся товары в разных частях страницы могут раздражать пользователя, снижая ценность рекомендаций и общее впечатление от интерфейса. - Оптимизация восприятия:
Разнообразие контента помогает удерживать внимание пользователя и повышает вероятность взаимодействия с рекомендациями.
Как работает фильтр, когда на странице два блока?
Когда на странице одновременно отображается два или более блока рекомендаций, фильтр дубликатов работает следующим образом (пример):
- В первом блоке ("Похожие товары") отображаются товары с ItemId: 101, 102, 103.
- Во втором блоке ("Часто покупаемые вместе") фильтр исключает эти же товары (101, 102, 103) и показывает только новые, например, 104, 105, 106.
В этом случае сбрасывать фильтр не нужно, потому что его основная цель — поддерживать уникальность между разными блоками на одной странице. Удаление дубликатов здесь работает в пользу пользователя, обеспечивая разнообразие предложений. Если сбросить фильтр с помощью команды delete retailrocket.modules.duplicates;
, то во втором блоке могут появиться товары из первого, что нарушит логику уникальности.
Зачем и когда сбрасывать фильтр дубликатов?
Однако есть ситуации, когда фильтр дубликатов нужно сбрасывать. Это связано с повторным рендером одного и того же блока рекомендаций:
- Обновление одного блока:
Допустим, пользователь добавил товар в корзину, и блок _"Рекомендации к корзине" _должен обновиться. Фильтр дубликатов может посчитать новые рекомендации дубликатами ранее показанных товаров (по их ItemId) и исключить их. В результате блок может остаться пустым или заполниться некорректно. - Пример: Если в первом рендере блока показаны товары 101 и 102, а при обновлении предлагаются 101 и 103, фильтр исключит 101 как дубликат, и пользователь увидит только 103 или ничего, если других вариантов нет.
Для решения этой проблемы используется команда delete retailrocket.modules.duplicates;
. Она сбрасывает фильтр, очищая список сохраненных идентификаторов. После этого блок может показать свежий контент, даже если некоторые товары уже были отображены ранее.
Итог
- Для нескольких блоков на странице:
Фильтр дубликатов автоматически исключает повторы между блоками, сохраняя разнообразие. Удалять дубликаты в этом случае не нужно — это его штатная работа. - Для обновления одного блока:
Если блок рендерится заново (например, при изменении состояния страницы), фильтр может мешать, исключая новые рекомендации. Сброс фильтра через deleteretailrocket.modules.duplicates;
позволяет показать полный набор свежих рекомендаций, даже если они частично совпадают с предыдущими.
Таким образом, фильтр дубликатов — это гибкий инструмент, который нужно использовать с учетом контекста: сохранять для уникальности между блоками и сбрасывать для актуальности при обновлении.
Updated about 4 hours ago