Solr сложная огранка - PullRequest
       63

Solr сложная огранка

4 голосов
/ 30 ноября 2011

У меня проблемы с огранкой. Представьте себе эту ситуацию. Товар может быть в нескольких категориях. Это обычное поведение для огранки:

Категория

  • Android (25)
  • iPhone (55)
  • другие (25)

Теперь, когда я выбираю «Android», я делаю новый запрос с «fq» => «Категория: Android», я получаю:

Категория

  • Android
  • iPhone (15)
  • другое (2)

Но это означает, что есть 15 продуктов, которые находятся в категориях "Android" И "iPhone". Я хотел бы что-то вроде этого: ("Android" ИЛИ "iPhone")

Категория

  • Android
  • iPhone (+5)
  • другое (+1)

То есть я получу 25 результатов, выбрав "Android (25)", и еще 5, выбрав "iPhone (+5)", так что в итоге я получу 30 результатов поиска.

Кто-нибудь знает, возможно ли это с помощью граней SOLR? Или, может быть, с более чем одним запросом и рассчитать его вручную?

Спасибо за совет!

Ответы [ 2 ]

3 голосов
/ 30 ноября 2011

Попробуйте новый запрос с отрицательным значением выборок, например "fq" => "-category:Android" - вы должны получить количество фасетов, которое вы ищете.

3 голосов
/ 30 ноября 2011

В зависимости от всех необходимых вам перестановок, вы, вероятно, захотите изучить фасеты запросов , которые позволяют вам получать счетчики для произвольных запросов. Например, вы можете сделать facet.query=category:("Android" OR "iPhone") и получить результаты подсчета, набранные на category:("Android" OR "iPhone"). И вы можете сделать это для любого количества запросов, на которые вы рассчитываете. Таким образом, в вашем случае вы, вероятно, сможете найти окончательное решение с некоторой комбинацией фасетов прямого поля и фасетов запроса.

Редактировать : Повторно читая ваш вопрос, вы также можете захотеть изучить тегирование и исключение частей дополнительного fq, в зависимости от того, как вы разрешаете своим пользователям «выбрать в» выбор. (Пример в документации довольно близок к вашей первоначальной настройке, хотя я не уверен, что конечное поведение в точности соответствует вашему желанию).

...