[РЕШЕНО]! Как для термина вывести случайное изображение из связанных с ним нод?

Главные вкладки

Аватар пользователя kind cat kind cat 12 ноября 2016 в 20:12

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

Комментарии

Аватар пользователя multpix multpix 13 ноября 2016 в 0:06

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

подумайте о неслучайной выборке, которая будет только выглядеть как случайная.

может стоит просто изменять id выводимой сущности (из ограниченного ряда) в зависимости от времени.

к примеру, брать цифровой корень текущего unix time,
отнимать от него длину ряда сущностей,
модуль результата - считать "случайным", его и выводить.

в таком виде - ряд не имеет смысла делать больше 9-ти.

имхо,
но я могу ошибаться.

но вы посмотрите нагрузку на базу во всех вариантах своих опытов.

Аватар пользователя kind cat kind cat 13 ноября 2016 в 0:41

Спасибо за совет!
Конечно я понимаю, что рандом - это нагрузка, но на одном конце стремление к упрощению и оптимизации, а на другом всегда есть желание клиента.
Можно, пожалуйста, поподробнее про псевдослучайную выборку.

Аватар пользователя tlito tlito 23 ноября 2016 в 23:02

надо включить агрегацию и поля сделать сгруппировать результаты group results together
authcache может помочь снять нагрузку рандома

Аватар пользователя kind cat kind cat 24 ноября 2016 в 0:20

Спасибо всем откликнувшимся!
Направление поиска решения помогли найти на drupal.slack.com.
Решил задачу с помощью Views Field View + контекстные фильтры.
Варианты с агрегацией перепробовал, думаю, все доступные - все одно: либо без результата, либо проблема, описанная в топике.
Способ решения по ссылке.