После обнаружения, что случайный порядок поддерживается в solr через:
<fieldType name="random" class="solr.RandomSortField" />
<field name="random" type="random" indexed="true" stored="false"/>
, эти запросы будут возможны, но НЕ в одном запросе
Хотя можно использовать facet и facet.queryфункция, но это только возвращает количество ... не документы.
Я бы установил отдельный рекламный индекс вместо обычного способа реализации "рекламы" с компонент высоты
повышенные записи со всеми терминами, набранными пользователем (упорядочены случайным образом)
простой запрос AND к рекламному индексу
повышенные записи слюбой термин, набранный пользователем (упорядоченный случайным образом)
простой запрос ИЛИ по рекламному индексу
продвигаемых записей, найденных в результате поиска по основанию (упорядоченный случайным образом)
нормальный поиск (с основами) в индексе рекламы.
повышенные записи, найденные фонетическим поиском (случайным образом).
для этого вам нужно преобразовать запрос и условия с помощью собственного фонетического преобразования.поэтому у вас будет специальное поле phonetic_text, и вам нужно будет запросить его через
q = phonetic_text: "UR G8" (что означает: вы великолепны; -))
свободных записей, упорядоченных в алфавитном порядке (с использованием всех или любого термина, набранного пользователем).
снова обычный поиск через «И» или «ИЛИ» с параметром сортировки