Я работаю над грани для результата поиска solr. У меня возникли проблемы с получением граней, чтобы показать, как я их хочу. Я хотел бы иметь возможность выбрать значение в одной фасете и обновлять только числа в других гранях, не принимая значений, когда количество фасетов равно 0.
Пример Я сделал поиск рубашки, и вот грани, которые возвращаются с их подсчетов:Solr Multi Select Facting игнорируя другие выбранные грани
цвет:
[] Красный (10)
[] Blue (10)
[] Зеленый (10)
Размер:
[] Малый (5)
[] Средний (10)
[] Большой (10)
Теперь, если я выбираю красный цвет, я хочу, чтобы мои фасеты обновлять как таковой:
Цвет:
[х] Красный (10)
[] Синий (10)
[] Зеленый (10)
Размер:
[] Малый (0)
[] Medium (5)
[] Большой (5)
У меня он работает так, что выбор цвета не ограничивает параметры в цветовой фасции, но я не могу понять, как получить правильные грани для отображения размера, путем настройки исключений я либо получаю:
Размер:
[] Средний (5)
[] Large (5)
или:
Размер:
[] Малый (5)
[] Medium (10)
[] Большой (10)
Я попытался добавить facet.limit = -1, но он не видит m сделать что-нибудь, может быть, ошибка, поскольку я ожидал, что это будет делать то, что я искал? Я запускаю solr 4.3.1.
Вот мой запрос: {! Ех = colortag}
д = стул & рядов = 10 & старт = 0 & facet.limit = -1 & defType = edismax & facet.field = цвет & facet.field = размер & фаска = истинный & FQ = цвет {ех = sizetag!} {тег = colortag!}: красный & фл = *, оценка
возможно ли это с Solr? Я не встречал никаких примеров этого, и я волнуюсь, что решение будет заключаться в том, чтобы обработать его на передней панели с кешированием, которое не будет работать.
Редактировать
Так я добавил facet.mincount = 0, который сделал и не дал мне то, что я хотел. Проблема в том, что с установкой mincount на 0 теперь я получаю все грани, которые не являются частью результата поиска.Так вот что я хочу:
Цвет:
[х] Красный (10)
[] Blue (10)
[] Зеленый (10)
Размер:
[] Малый (0)
[] Medium (5)
[] Большой (5)
но то, что я на самом деле получаю:
Цвет:
[х] Красный (10)
[] Blue (10)
[] Зеленый (10)
[] Оранжевый (0)
[] Фиолетовый (0)
[] Розовый (0)
Размер:
[] Малый (0)
[] Medium (5)
[] Большой (5)
[] X-Large (0)
[] XX-Large (0)
Итак, теперь я добавил цвета и размеры, не соответствующие запросу. Я понимаю, что он работает правильно, но я не хочу, чтобы он работал. Есть ли другой подход, который я могу принять. Я понимаю, что могу сделать один звонок, чтобы получить начальные результаты без каких-либо выделенных граней, а затем сделать второй вызов, чтобы получить отфильтрованные грани, а затем сравнить и построить правильный результат. Я бы предпочел не делать двойной звонок, поэтому любая помощь была бы оценена.
решение, которое вы использовали собственно, просто используйте 'facet.mincount = 0 'или другие значения, чтобы получить значение грани с этим счетчиком, и если вам не нужно исключать размер, вы должны удалить исключение на грани размера –