階層的なファセット戦略を実装する
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
階層的なfacetsは、検索時にフィルターを組み合わせることで、facet値の増加という問題を解決できます。システムのパフォーマンスと効率を向上させるために、階層的なファセット戦略を実施し、顧客がコンテンツコレクションをナビゲートできるようにしましょう。
階層的facetsを実装するには:
-
あなたのfacetsリストの中で、組み合わせることで他のカテゴリに分類できる項目を生み出すfacetsを特定してください。例えば 、ブランド や モデルなどです。
-
ステップ1で特定されたfacetsの名前を連結して新しいファセットを作成します。例えば、brand_modelは ブランド と モデル の連結文字列で、_ を区切り符として使います。
-
新しいファセットをエンティティの属性として追加し、その属性をファセットとして設定します。
-
ソースのエクストラクタロジックを更新して、ファセット値の連結文字列を設定します。例えば、ブランド と モデルが1 _で区切られている場合などです。
例えば、Ford_FocusやFord_Kugaです。
-
更新されたソースを公開し、再インデックスをトリガーします。
-
アプリケーションやページが読み込まれた後、以下の手順を踏みます:
-
ウィジェットのfacetsと値をすべて含むデータをRequestしてください。この例では、ウィジェットrfkid_7です。
このリクエストはセッションごとに少なくとも1回は実行することを忘れないでください。
-
応答時に、返された面オブジェクトをローカルに保存します。
-
facetsおよびfacet値のリストにあるデータを用いて、必要なユーザーインターフェースを構築します。
-
-
以下のコードブロックを参照として、ウィジェットrfkid_7のデータリクエストを更新してください。
{ "context": { "locale": { "country": "us", "language": "en" } }, "widget": { "items": { "rfk_id": "rfkid_7", "entity": "car", "sources": "981588" , "search": { "limit"
, "content": { "fields": "brand_model", "year", "city"}, "facet": { "max": 100, "types":
{ "name": "brand_model", "filtering_options": "hard_filters", "other_facet_values" }, { "name": "year", "filtering_options": "hard_filters", "other_facet_values" }, { "name": "city", "filtering_options": "hard_filters", "other_facet_values" }
} } }
} }
-
そのリクエストからウィジェットのレスポンスを使い、contentの項目を解析して個々のfacets数を決定します。例えば、brand_modelフィールドを用いて、以下のfacetsでbrandとmodelを数えます。
… "facet": { "name": "brand_model", "value": { "id": "facetid_eyJ0eXBlIjoiZXEiLCJuYW1lI…", "text": "Ford_Focus", "count": 6 }, { "id": "facetid_eyJ0eXBlIjoiHZAiLCoidHlwZ…", "text": "Ford_Kuga", "count": 2 }
…
この例では、インデックスにはフォード車が8台あり、フォーカスが6台、クガが2台で構成されています。
-
ステップ6で作成したfacetsのリストを埋めます。例えば:
Ford (8) Focus (6) Kuga (2)