Почему Solr сопоставляет данные и считает несовпадение при использовании group.limit?

Я выполняю запрос SOLR, где я группирую заголовки и ограничиваю количество заголовков в группах. Проблема, с которой я сталкиваюсь, заключается в том, что я не получаю точное количество совпадений с пройденным лимитом.

например:

http://localhost:8080/solr/select?wt=json&indent=true&fl=publication,book_code,bookID,book_date,book_images&q=asset_type:Book+AND+AND+engineering:true&group=true&group.field=book_code&group.limit=3&rows=50000&group.sort=book_date+desc

Как мне преобразовать этот запрос, чтобы я мог получить 10000 записей одновременно.

В настоящее время возвращается результат:

{"responseHeader"=>
  {"status"=>0,
   "QTime"=>195,
   "params"=>
    {"fl"=>"publication,book_code,BookID,book_date,book_images",
     "indent"=>"true",
     "q"=>"doc_type:Book AND engineering:true",
     "group.limit"=>"3",
     "group.field"=>"book_code",
     "group.sort"=>"book_date desc",
     "group"=>"true",
     "wt"=>"json",
     "rows"=>"50000"}},
 "grouped"=>
  {"book_code"=>
    {"matches"=>30216,
    "groups"=>
      [{"groupValue"=>"NYM",
        "doclist"=>
         {"numFound"=>2683,
          "start"=>0,
          "docs"=>
           [{"book_code"=>"NYM", .... } and so on 

Когда я пытаюсь получить количество сгруппированных книг, я получаю:

result["grouped"]["book_code"]["groups"].count #=> 276

Который не совпадает с возвращенным результатом совпадений.

1 ответ

Решение

matches общее количество документов, соответствующих вашему запросу. ["groups"].count значение - это число возвращенных отдельных групп. Т.е. возвращенные 30216 документов принадлежат 276 разным группам.

Другие вопросы по тегам