Я не уверен, возможно ли это, но я хотел бы иметь возможность более тщательно контролировать счетчики, возвращаемые для фасетов, чем просто включать и исключать.
В частности, у меня есть интерфейс, который позволяет пользователям фильтровать по «facetA» и «facetB». Это выглядит примерно так
Filter by - facetA: article (20), image (6), activity (14) - facetB: cats (23), dogs(12), hedgehogs(5)
Интерфейс дает понять, что facetA находится выше в иерархии, чем facetB. Я бы хотел, чтобы подсчет facetA был полностью постоянным, а facetB также считался постоянным, но зависел от выбора facetA.
Таким образом, интерфейс может реагировать на изменение фасета B с помощью:
Filter by - facetA: article (20), image (6), activity (14) - facetB: cats (23), dogs(12), hedgehogs(5)
т.е. ни один из счетчиков не изменится.
Но он будет реагировать на изменение facetA следующим образом:
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». Кто-нибудь может уточнить? Могу ли я получить более точный контроль над тем, как исключить счетчики?