2013-07-05 2 views
0

Для нашего сайта с электронной коммерцией на основе RoR мы показываем результат поиска в разбивке по страницам. Даже при рандомизации этот список часто содержит несколько продуктов одного бренда, сложенных вместе. Мы хотим, чтобы результат поиска был «де-скомпенсирован», так что продукты одного и того же бренда не появляются рядом друг с другом.Разбитый, рандомизированный результат поиска, без комков

Например, если у меня есть тысячи продуктов, принадлежащих 50 брендам, и я показываю менее 50 продуктов на странице, он не должен показывать более одного продукта на бренд на этой странице (или, желательно, какой-либо настраиваемый максимум). Мне нужно было бы сохранить «семенную» ценность какого-то рода, чтобы перейти, поскольку пользователь переходит от страницы к странице, чтобы я мог воссоздать порядок поиска.

Какой алгоритм или стратегия можно использовать для выполнения этого декомпозированного/рандомизированного результата?

+1

Можете ли вы сначала выбрать бренд (с вероятностью, равной количеству продуктов этого бренда, деленный на общее количество продуктов), а затем выбрать случайный продукт этой марки? Если вы отслеживаете продукты предыдущих страниц, вам не нужно семя. –

+0

Есть ли другие критерии сортировки? Нужно ли это каким-то образом работать с релевантностью, новейшей, самой высокой оценкой и т. Д. Сортировкой? Если так, что происходит, когда первые десять предметов должны быть от одного лучшего поставщика? – Speed8ump

+0

@ Speed8ump - Это хороший вопрос, но в настоящее время мы не используем рейтинг поставщика любого вида, а ключевое слово поиска по выбору - это единственный подход, основанный на релевантности, для используемых нами фильтров поиска (все остальное является логическим в природа, она либо соответствует условию, либо не соответствует). В настоящее время сортировка основана на дате ввода в систему, которая вызывает много комков. Выполнение чистого рандомизированного результата, очевидно, уменьшает скопление, но оно все еще происходит. Просматривая множество крупных ритейлеров, их результаты поиска, как правило, не сводятся к бренду. Это то, что мы идем. –

ответ

2

Я мог бы описать стратегию, предложенную virtomommerce, которая находится на уровне каталога. Здесь можно группировать подобные «вариации» с «продуктами». Затем варианты могут быть отмечены как невидимые во время поиска или/и в главном каталоге e-store, когда продукты видны и могут наследовать ключевые слова «варианты», которые можно искать. Изменения все еще доступны, но только на странице продукта.

Смежные вопросы