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

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

Мне нужно иметь возможность просмотреть результаты.

Я использую RoR/sunspot FYI.

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


person Eric    schedule 30.11.2012    source источник


Ответы (1)


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

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

person javanna    schedule 30.11.2012