Учитывая эти примеры документов в Solr:
{id: 1, parent_id: 101}
{id: 2, parent_id: 102}
{id: 3, parent_id: 103}
{id: 4, parent_id: 104}
{id: 5, parent_id: 105}
{id: 6, parent_id: 101}
{id: 7, parent_id: 101}
Я выполняю поиск Solr, используя раскрытие / свертывание, создавая группу для каждого parent_id, общее количество из 3 групп, в каждой из которых может быть до 10 документов:
...&expand=true&expand.rows=10&rows=3&fq={!collapse field=parent_id}
Результаты будут выглядеть так:
Group 1:
{id: 1, parent_id: 101} (head document)
{id: 6, parent_id: 101}
{id: 7, parent_id: 101}
Group 2:
{id: 2, parent_id: 102} (head document)
Group 3:
{id: 3, parent_id: 103} (head document)
Мой вопрос: есть ли способ получить документы id=4
и id=5
в этом запросе? Я не могу просто увеличить количество строк (групп), так как я не знаю, сколько будет групп (это 5 в данном случае, но на самом деле это будет отличаться). Есть ли способ указать группу «catch-all», которая будет содержать документы, которые прошли мои фильтры, но не были назначены ни одной из реальных групп. Таким образом, результаты будут иметь одну дополнительную группу, например:
Group Extra:
{id: 4, parent_id: 104}
{id: 5, parent_id: 105}
Обратите внимание, что это не может быть обработано nullPolicy
, поскольку эти документы имеют действительный (числовой) parent_id
, они просто не помещаются в выбранные группы.