Группировать документы с помощью 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
Другие вопросы по тегам