3

js クライアントを使用して Algolia でファセットを使用しています。例として、色とサイズのファセットがあり、赤と大を選択すると、次のような結果を得ることができます。

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

これは問題なく動作し、結果に Red ファセットと Large ファセットのみが表示されます。

Color:
Red

Size:
Large

しかし、各ファセットで可能なすべてのオプションを表示し、選択したオプションのみを強調表示できるようにしたいと考えています。何かのようなもの:

Color:
Red *selected*
Blue
Green

Size:
Large *selected*
Small
Medium

アルゴリアで 1 つの検索クエリと通常のファセットを使用してこれを行う方法はありますか?

4

2 に答える 2

4

ファセットを簡単に処理する 1 つの方法は、 JS API クライアントに加えてAlgolia JS Helperを使用することです。

これは、通常のファセット、選言的ファセットだけでなく、階層的ファセットも管理するエレガントな方法を提供します。

于 2015-08-21T08:32:56.253 に答える
1

複数のクエリが必要なため、分離ファセットでのみこのような動作を実現できます。

  • 各ファセットのカウントを計算するフィルターなしの最初のクエリ
  • フィルター適用後のカウントを取得するためにフィルターが適用された 2 番目のクエリ

選言ファセットはこれらのクエリを生成するため、それらに対処する必要はありません。

于 2015-08-21T08:16:30.510 に答える