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
  • взять минимум стоимости
  • фильтровать кортежи, значение которых> ваш диапазон

Посмотрите на вещи, которые вы можете сделать на странице выше

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