Подсчет фасетов Solr при выборочном исключении

Я не уверен, возможно ли это, но я хотел бы иметь возможность более тщательно контролировать счетчики, возвращаемые для фасетов, чем просто включать и исключать.

В частности, у меня есть интерфейс, который позволяет пользователям фильтровать по «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». Кто-нибудь может уточнить? Могу ли я получить более точный контроль над тем, как исключить счетчики?

8
задан Dave 2 August 2011 в 04:43
поделиться