Algolia 分面搜索以显示所有分面选项
Algolia Faceted Search to Show all Facet Options
我在使用 js 客户端的 Algolia 中使用构面。例如,如果我有颜色和尺寸的分面,并且我选择了红色和大号,我可以获得类似这样的结果:
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 中使用一个搜索查询并使用常规构面(非分离)来做到这一点?
您只能通过析取分面实现这样的行为,因为您需要进行多个查询:
- 第一个没有过滤器的查询来计算每个方面的计数
- 应用过滤器的第二个查询在应用过滤器后获得计数
析取分面为您生成这些查询,因此您不必处理它们。
一种轻松处理分面的方法是使用 Algolia JS Helper, additionally to the JS API Client
它提供了一种优雅的方式来管理常规方面、分离方面以及分层方面。
我在使用 js 客户端的 Algolia 中使用构面。例如,如果我有颜色和尺寸的分面,并且我选择了红色和大号,我可以获得类似这样的结果:
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 中使用一个搜索查询并使用常规构面(非分离)来做到这一点?
您只能通过析取分面实现这样的行为,因为您需要进行多个查询:
- 第一个没有过滤器的查询来计算每个方面的计数
- 应用过滤器的第二个查询在应用过滤器后获得计数
析取分面为您生成这些查询,因此您不必处理它们。
一种轻松处理分面的方法是使用 Algolia JS Helper, additionally to the JS API Client
它提供了一种优雅的方式来管理常规方面、分离方面以及分层方面。