#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.