Solr: запрашивает и возвращает x количество типов

#solr

#solr

Вопрос:

У меня большой индекс файлов. Одно из полей, которые у меня есть, — «content_type». В этом поле хранится базовый тип файла (например, pdf, изображение, видео, документ, электронная таблица и т. Д.).

Я запускаю поиск по именам файлов (мое поле «заголовок»). Как я могу структурировать запрос так, чтобы он возвращал только определенное количество каждого типа?

Например, скажем, у меня есть 1000 файлов со словом «work» в названии. Я хочу выполнить поиск «work» в названии, но я хочу, чтобы сначала было возвращено 5 результатов от каждого «content_type». (предполагается, что каждый конкретный content_type содержит 5 или более элементов). Итак, на моей странице результатов поиска я могу сказать:

было найдено 1000 элементов для «работы»

Затем я начинаю перечислять элементы, по 5 для каждого типа.

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

Ответ №1:

Кажется, в основном вы хотите ограничить и сгруппировать результаты по типу контента.

Ознакомьтесь с функцией свертывания и группировки полей Solr

Это поможет вам сгруппировать результаты по типу контента, используя group.field=content_type
Количество результатов в группе может быть ограничено group.limit=5 Для получения полного списка параметров обратитесь к ссылке выше.

И вы можете использовать обычные параметры запроса для поиска результатов, т.е. q = work

Эта функция доступна только в сборке Solr 3.3.