2015-08-20 5 views
3

Я использую грани с Algolia с помощью js-клиента. В качестве примера, если у меня есть грани для цветов и размеров, и я выбираю красный и большой, я могу получить результаты что-то вроде:Algolia Faceted Search, чтобы показать все параметры фасета

index.search("shirts", { 
    "facets": "*", 
    "hitsPerPage": 10, 
    "facetFilters": [ 
    "color:Red", 
    "size:Large", 
    ], 
    "maxValuesPerFacet": 100 
}); 

Это прекрасно работает, показывая, что красный и больших граней в результате :

Color: 
Red 

Size: 
Large 

Но я хотел бы быть в состоянии показать все возможные варианты для каждой грани и просто выделить выбранный один. Что-то вроде:

Color: 
Red *selected* 
Blue 
Green 

Size: 
Large *selected* 
Small 
Medium 

Есть ли способ сделать это в Algolia с одним поисковым запросом и с использованием регулярных граней (не дизъюнктивной)?

ответ

3

Одним из способов обработки граней легко заключается в использовании Algolia JS Helper, дополнительно к JS API Client

Это один предлагает элегантный способ управления регулярных граней, дизъюнктивную грань, но и иерархические аспекты.

1

Вы можете только достичь такого поведения с разорванной огранкой, как вам нужно иметь несколько запросов:

  • первого запрос без фильтра, чтобы вычислить счетчики на каждом фасете
  • второго запроса с фильтром применяется к имеют счет после применения фильтров

Дизъюнктивная огранка генерирует эти запросы для вас, поэтому вам не придется иметь дело с ними.

+0

В чем разница между фильтрацией и огранкой? –