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

它提供了一种优雅的方式来管理常规方面、分离方面以及分层方面。