Я потратил несколько часов на то, чтобы найти решение моей проблемы. Я видел, как люди задают вопросы, близкие к тем, что я пытаюсь выполнить, но пока никто не задает один и тот же вопрос. Позвольте мне посмотреть, могу ли я объяснить это адекватно:Отфильтруйте нерелевантные грани из результатов Solr
Скажите, что я обувной магазин. На моем веб-сайте у меня три страницы: одна для мужской обуви, одна для женской обуви и одна для детской обуви. Скажем, моя таблица обуви имеет поле prod_group. Итак, для мужской страницы запрос будет q = prod_group: men. Теперь, скажем, один из аспектов, которые я хочу предоставить, - это бренд. q = prod_group: men & filter.field = brand
Проблема, с которой я столкнулась, - это результаты фасета, показывающие все бренды в моей базе данных, а не только марки, относящиеся к мужской обуви. Другими словами, я уже знаю, что в линии «Мой маленький пони» есть нулевая мужская обувь. Я не хочу показывать My Little Pony в аспекте бренда. Установка facet.mincount - это не то, что мне нужно. Если я запустил запрос q = prod_group: men & fq = color: red & filter.field = бренд, клиент хочет показать потребителю, что у бренда «Mighty Joe» нет красных туфель, поэтому мне все еще нужны грани с число фаций 0.
В принципе, на что я надеюсь, это результаты фасетов, основанные на результатах базового запроса. Пока единственный способ, которым я это вижу, - запустить два запроса: сначала с базовым запросом и установкой facet.mincount = 1, чтобы получить список соответствующих граней, а затем фактический запрос с facet.mincount обратно в 0, так что Я могу выяснить, когда седеть некоторые варианты, которые больше не доступны на основе уже сделанных фасет.
Выполнение двух запросов кажется несколько менее элегантным. facet.pivot может помочь в долгосрочной перспективе, но мы все еще используем 3.x, и я не вижу, чтобы это изменилось в ближайшее время. Я пропустил какой-либо запрос/схему/параметр конфигурации, который будет делать то, что мне нужно, с одним запросом?