Ну, мы сталкивались с подобной задачей и раньше, и я бы сказал, что Solr не может фильтровать вычисленные значения.Либо вы можете получить весь фасет, установив предел равным -1, и тогда будет некоторая оболочка (WEB API), которую вам нужно переписать в поисковом приложении, которая отфильтрует список фасетов.
json.facet={cty:{type:terms,field:country,limit:-1,facet:{sum_value:”sum(population)”}}}
ИлиВы можете предварительно рассчитать сумму населения для каждой страны перед индексацией.Посмотрите на таблицу ниже.
| Страна | Население |Total_Population |
|C1 |12 |25 ||C1 |13 |25 ||С2 |14 |49 ||С2 |35 |49 |
Позже вы можете напрямую фильтровать поле Total_Population с помощью фильтра запросов.Кроме того, вы сэкономите много времени, не агрегируя в реальном времени.