Я хотел бы знать, возможно ли вернуть SolrDocument в моем ответе, указав сначала запрос, который возвращает, например, 100 самых дорогих продуктов, а затем случайным образом возвращает только 1 продукт в мое приложение.
Solrj случайная сортировка
Ответы (1)
Я не думаю, что solr вернет вам один запрос для ваших нужд, вам нужны 100 самых дорогих (это само по себе основано на критериях), а затем последняя запись со случайным продуктом.
Насколько мне известно, вам придется использовать 2 запроса, чтобы получить результаты. перед этим вы должны включить случайную сортировку полей в свой solr.xml, как показано ниже:
Используйте RandomSortField в вашем solr.xml . Пример в связанном schema.xml в примерном каталоге загрузок solr (в папке solr):
<fieldType name="random" class="solr.RandomSortField" indexed="true" />
<dynamicField name="random_*" type="random" />
Это отсортирует ваш список результатов по полю random_, где вы замените случайно сгенерированным значением (но используйте то же значение, если вы разбиваете результат на страницы, так как это даст вам стабильную сортировку на основе имени поля).
Измените их в solr.xml, как показано выше, и запустите 2 запроса, объедините результат и верните обратно.
запустить запрос ?q=*&sort=prod_amt desc&rows=100 (при условии, что количество вашего продукта находится в поле с именем «prod_amt») — это даст вам 100 самых дорогих продуктов.
запустить запрос ?q=*&sort=random_12939291 desc&rows=1 (здесь 12939291 - просто случайная строка).
Надеюсь это поможет.
Спасибо
Шива Кумар СС