Я не уверен, возможно ли это, но я хотел бы иметь возможность более точно контролировать количество, возвращаемое для фасетов, чем просто включать и исключать.
В частности, у меня есть интерфейс, который позволяет пользователям фильтровать по «facetA» и «facetB». Это выглядит немного так
Filter by - facetA: article (20), image (6), activity (14) - facetB: cats (23), dogs(12), hedgehogs(5)
Интерфейс дает понять, что фасет А находится выше в иерархии, чем фасет Б. Я бы хотел, чтобы счетчики facetA были полностью постоянными, а счетчики facetB также были постоянными, но зависели от выбора facetA.
Таким образом, интерфейс может отреагировать на изменение facetB следующим образом:
Filter by - facetA: article (20), image (6), activity (14) - facetB: cats (23), dogs(12), hedgehogs(5)
то есть ни один из счетчиков не меняется.
Но он будет реагировать на изменение фасеты следующим образом:
Filter by - facetA: article (20), image (6), activity (14) - facetB: cats (15), dogs(4), hedgehogs(1)
т. е. счетчики facetB изменяются, чтобы отразить то, что доступно после применения фильтра facetA.
Просто делаю
&facet.field={!ex=dt}fieldA&facet.field={!ex=dt}fieldB
не достигает того, что я хочу, но это близко. Я нахожу, что инструкции по этому поводу в вики solr очень расплывчаты - как будто я даже не знаю, что означает «dt». Кто-нибудь может уточнить? Могу ли я получить более точный контроль над тем, как исключаются подсчеты?