Как я могу отсортировать результаты моего solr, чтобы ограничить количество последовательных результатов?

Допустим, я выполняю запрос solr, который сортирует по баллам (по умолчанию). У меня есть поле "бренд", в котором содержатся Ford, GM, Toyota и т. Д. Я хочу, чтобы результаты запроса возвращались так, чтобы какой-либо конкретный бренд мог иметь только три последовательных результата? Даже если первые 100 результатов - это Toyota для моего запроса, я все же хочу, чтобы 101-й элемент был взят и показан на 4-м месте (чтобы только три автомобиля Toyota могли появляться в последовательности).

Я должен быть в состоянии пролистать результаты.

Я использую RoR/ солнечное пятно FYI.

Это возможно?

1 ответ

Решение

Не уверен, что вы можете получить именно то, что вы хотите, но я бы посоветовал взглянуть на группировку результатов. Это позволяет группировать результаты, которые имеют одинаковое значение для определенного поля, например brand в твоем случае. Затем вы можете определить, сколько результатов вы хотите для каждого бренда через group.limit параметр (по умолчанию 1). Затем вы можете разбить на свои сгруппированные результаты с помощью group.offset параметр.

Это должно работать до тех пор, пока ваш brand поле не многозначное.

Другие вопросы по тегам