Группировать документы с помощью rSolr
Я строю приложение в ruby на рельсах, которое использует Solr 4. Для поддержки Solr 4 в моем приложении я использую гем rSolr. Я пытаюсь разобрать запрос и разрешить сгруппировать полученные документы по номеру. Запросы не создают проблемы, но я не могу найти правильный синтаксис, чтобы сказать rSolr для анализа групповой части. Кто-нибудь знает, каков правильный синтаксис?
2 ответа
После небольшого исследования я нашел ответ на свою проблему. Я использовал функциональность, конкретный метод find, из гема rsolr-ext, который не поддерживает группировку:
solr_connection.find(
{
:q => "*:*",
:group => true,
"group.field" => "group_id"
})
Это вызовет ошибку в геме rsolr-ext, потому что он не может разобрать часть "group.field" хэша. Без этого Солр не знает, где группировать.
Ответ был довольно прост. Просто используйте метод select из гема rsolr:
solr_connection.select(
{
:q => "*:*",
:group => true,
"group.field" => "group_id"
})
Это работает отлично.
Вот как группировка выполняется в Solr 4:
&group=true
&group.field=myField
Если вы хотите только группы и никаких документов, добавьте это:
&rows=0