Похожие товары — какая логика реализации?

Как на сайте реализовать функционал похожие товары? С помощью только одних запросов в БД, думаю это не получиться. Описание работы: есть товар с характеристиками (цена, цвет, другие технические характеристики). При отсутствии выбранного товара (наличие = 0), предлагать максимально похожий товар из этой категории товаров. Как сравнить по цифровым значениям в характеристикам я понимаю еще, но как быть если имеем дело с такой характеристикой, которая буквенная, например белый цвет? Можно использовать словари, конечно. Реализация на PHP+Mysql. Разработки сторонних стартап-проектов не предлагать, считаю их лишней тратой денег за такой функционал.
  • Вопрос задан
  • 3900 просмотров
Пригласить эксперта
Ответы на вопрос 6
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
В 3 этапа.
1. Ближайшие цифровые характеристики у имеющихся товаров относительно отсутствующему: каждая по-отдельности вверх и вниз, формирование списка с весами релевантности.
2. Подстановка текстовых переменных и поиск по списку (из п.1) с использованием алгоритма расстояния Левенштейна с формированием СВОЕГО списка весов релевантности.
3. Объединение этих двух списков с суммированием весовых показателей и последующей сортировкой по весовым значениям: самый максимальный вес - будет самым похожим товарозаменителем.
PS: если у Вас в БД: "желтый", "yellow", "песочный", "sand", "светло-жёлтый", "светлый песок" - то тут Вы должны использовать синонимайзер, написанный вручную для использования до п.2.
Ответ написан
Комментировать
kawabanga
@kawabanga
- Самый простой вариант
Предлагать товары из той же категории. Просто, Жирно, Функционально.

- Посложнее
Из той же категории, но с учетом цены.

- Посложнее
Написать функцию, которая ищет товары по фундаментальным характеристикам, например, если это магазин одежды, то такая характеристика - размер одежды. Ну и искать соответственно в той же категории.

- Изврат
Для каждого товара назначать похожие вручную. Видел в CMS как то такую реализацию.

Способов много, только вам выбирать, что именно вам хочется.
Ответ написан
Комментировать
Viverov
@Viverov
Если захотите заняться извратом, то:

https://www.youtube.com/watch?v=tywGoQv1G6I

Нижнее белье логики модуля BigData
Ответ написан
Комментировать
VladimirAndreev
@VladimirAndreev
php web dev
- попробовать собрать статистику по близким по времени кликам из одной страницы выдачи.
- с цветами и т.п. - можно создать таблицу цветов и указывать в товаре id цвета из этой таблицы и выборки на ее основе делать, а уж контенты пусть тот же розовый цвет обзывают как хотят в своих описаниях
Ответ написан
shogunkub
@shogunkub
Программист+Инженер-электронщик
Помимо перечисленного - можно прикрутить тегирование, и выдавать товары с совпадающими тегами (больше одного совпадения, сортировать в порядке уменьшения количества совпадений). Но нужно, ествественно, тогда ещё удобный инструмент для редактирования списка тегов изобретать.
Ответ написан
Комментировать
dimonchik2013
@dimonchik2013
non progredi est regredi
sphinxsearch, facetes

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

еще можете посмотреть в сторону neo4j, но там путаннее логика
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы