Ну, мы сталкивались с подобной задачей и раньше, и я бы сказал, что 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 с помощью фильтра запросов. Кроме того, вы сэкономите много времени, не агрегируя в реальном времени.
Как вы правильно поняли, требование конструктора не по умолчанию будет запрещать вам использовать этот элемент управления из XAML. Это также означает, что дизайн-поддержка больше не будет, и ваши дизайнеры, вероятно, будут вас ненавидеть. Наконец, вы нарушаете все виды хороших сценариев привязки данных. Как и использование элемента управления в качестве ItemTemplate
.
В качестве исправления для отсутствующей поддержки дизайна , я бы предложил реализовать конструктор по умолчанию, который создает макет модели представления, которая не нужна любая инфраструктура. Таким образом, вы можете очень элегантно поддерживать режим разработки, и помещение представления в файл XAML (например, для тестирования) сделает что-то разумное.
В качестве средства устранения отсутствует поддержка привязки данных , вам следует подумать, не лучше ли использовать модель представления через DataContext
вашего элемента управления WPF. Это часто встречается в WPF и - насколько я могу судить - предполагаемый способ передачи модели в представление в WPF.
Чтобы поддерживать дизайнер, вам нужен конструктор по умолчанию. Когда вы определяете свой собственный конструктор, вы в основном теряете автоматически сгенерированный конструктор по умолчанию. Просто создайте явный конструктор по умолчанию, и все будет в порядке.
Assuming that you don't need designer support then I see no reasons.