SOLR Collapse field - фильтр диапазона, где MIN
У меня проблема с SOLR Collapse, с которой я не могу двигаться.
Принимая документы
{ id: 1, parent_id: x, value: 3 },
{ id: 2, parent_id: y, value: 5 },
{ id: 3, parent_id: x, value: 7 },
{ id: 4, parent_id: y, value: 10 }
Теперь допустим, что я хочу свернуть на parent_id и минимальное значение doc:
{!collapse field=parent_id min=value }
ожидается то, что я получу от SOLR:
GROUP x: { id: 1, parent_id: x, value: 3 },
GROUP y: { id: 2, parent_id: y, value: 5 }
но допустим, я хочу получить результаты, где минимальное значение равно 4, поэтому я применяю фильтр.
{!collapse field=parent_id min=value } {value:[4 TO *]}
То, что я получаю, понятно, но не совсем то, что я хочу:
GROUP x: { id: 3, parent_id: x, value: 7 },
GROUP y: { id: 2, parent_id: y, value: 5 }
Таким образом, результаты фильтруются, затем сворачиваются в parent_id и выбирается минимальное значение, но я действительно хочу получить только те группы, значение MINIMUM которых находится в пределах диапазона:
GROUP y: { id: 2, parent_id: y, value: 5 }
GROUP x is not in result as minimum value is 3
Если я правильно понимаю из документов - после запроса происходит свертывание, но есть ли способ получить то, что я пытаюсь?
большое спасибо
1 ответ
Как вы сказали, сначала выполняется другой запрос, затем запускается пост-фильтр свертывания.
Я хотел бы попробовать это с потоковыми выражениями, вы должны быть в состоянии:
- group by parent_id
- взять минимум стоимости
- фильтровать кортежи, значение которых> ваш диапазон
Посмотрите на вещи, которые вы можете сделать на странице выше