2014-11-21 3 views
0

Я работаю с фасетками в Solr, и у меня есть концепция групп грани, каждая из которых содержит ряд граней.Группы фаций в Solr - это возможно в одном запросе

Скажем, у меня есть структура, как этот

Product Type 
- Chairs (50) 
- Tables (20) 
- Mirrors (5) 

Color 
- Yellow (5) 
- Black (50) 
- Red (10) 
- Orange (10) 

У меня есть отношения или между гранями внутри фасета группы и, отношения между группами.

Так что, если я выберу Chairs как фасет, я получаю 50 продуктов. Использование стандартной огранки в Solr (и предполагая, что каждый продукт может иметь ровно один тип продукта и один цвета) теперь будет давать:

Product Type 
- Chairs (50) 
- Tables (0) 
- Mirrors (0) 

Color 
- Yellow (5) 
- Black (30) 
- Red (5) 
- Orange (10) 

Однако то, что я действительно хочу, что отсчетов фасеточных в пределах Типа продукта пребывания тот же, что и будет отражать то, что произойдет, если один из них будет выбран.

Можно ли это сделать с помощью Solr в одном запросе?

ответ

1

Это может быть реализовано using tagged filters and then excluding them при создании фасета.

Из указанной страницы:

Для реализации множественного выбора фасета для DOCTYPE, графический интерфейс может понадобиться еще отображать другие значения DOCTYPE и связанные с ними счетчик, как если бы доктайп: PDF ограничения не было но были применены. Пример:

=== Document Type === 
    [ ] Word (42) 
    [x] PDF (96) 
    [ ] Excel(11) 
    [ ] HTML (63) 

Для возврата счетчиков для значений DOCTYPE, которые в настоящее время не выбран, теги фильтров, которые непосредственно ограничивают доктайп и исключить эти фильтры, когда огранка на DOCTYPE.

q=mainquery&fq=status:public&fq={!tag=dt}doctype:pdf&facet=on&facet.field={!ex=dt}doctype 

Фильтр исключения поддерживается для всех типов граней. И тег, и ex local params могут указывать несколько значений, разделяя их запятыми.

+0

Красивая. Спасибо! – AndersDaniel

Смежные вопросы