Почему 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 разным группам.