検索用のファセット

このページでは、ファセット機能の一部とその使用方法について説明します。

このセクションでは、ファセットに関連するいくつかの用語の基本的な定義と説明について説明します。

  • ファセット: ファセット検索を実行するファセット仕様。結果をフィルタリングすることで、ユーザーが必要な情報を見つけやすくなります。たとえば、ユーザーが shoes を検索した場合、返されるファセットの一部は priceattributes.departmentattributes.colorsattributes.size です。

  • システム属性: 事前定義されたシステム属性は、商品に関する詳細情報を提供する既存の商品フィールドです。これには、brandavailabilitycolorsize など、いくつかの事前定義された商品属性が含まれます。

  • カスタム属性: カスタム属性は、Product.attributes フィールドを使用して定義する追加属性です。たとえば、stylecolordepartment などが該当します。

  • ファセットキー: これはファセットの名前です。たとえば、attributes.departmentsizes などになります。ファセットキーは属性名に対応しています。たとえば、(商品)システム属性名 sizes はファセットキー sizes に対応します。同様に、(商品)カスタム属性名 department はファセットキー attributes.department に対応します(カスタム属性の場合、ファセットキーを取得するために、接頭辞 attributes. がカスタム属性名に追加されます)。用語属性名、ファセットキー、ファセット名は交換可能です。

  • ファセット値: テキストキーの場合、ファセットのテキスト値の 1 つです。たとえば、テキスト ファセットキー brands には AsicsNike のようなテキスト値を含めることができます。数値キーの場合、ファセット値は間隔です。たとえば、数値ファセット鍵の料金には [20, 30) という形式のインターバルがある可能性があります。

  • 属性またはファセットのタイプ: テキストまたは数値のいずれかです。

  • 固定されたファセット: これは、オプション enableDynamicposition=false を指定して FacetSpec を使用し、リクエストで渡すファセットです。ファセットは、レスポンス内のすべての動的ファセットの前に元の順序で表示されます。

  • 動的ファセット: これらは Retail Search がランク付けするファセットです。これらは、オプション enableDynamicPosition=true を指定してリクエストで渡すか、Retail Search モデルに従ってフェッチされます。その後、最も関連性の高い同じトレーニング済みモデルによって上位にランキングします。

  • ファセット可能または動的ファセット: 動的ファセットに対して属性が有効になっている場合、Retail Search は、過去のユーザーの行動(ファセットのクリックや表示など)に基づいて、この属性を動的ファセットとして自動的に使用できます。属性の動的ファセットを有効にするには、その属性のインデックスも有効にする必要があります。

  • フィルタ: フィルタ構文は、フィルタ対象となる商品の 1 つ以上のフィールドから述語を生成するための式言語で構成されます。たとえば、ユーザーがファセット キー attributes.brands のファセット値 Asics を扱う場合、フィルタの一部が (attributes.brands:ANY(\"Asics",\"Nike\")) になることがあります。フィルタ式では大文字と小文字が区別されます。フィルタの詳細については、こちらのユーザーガイドをご覧ください。

動的ファセットについて

サービス構成で動的ファセットが有効な場合、Retail Search では、ファセットのクリックや表示などの過去のユーザーの行動に基づいて、この構成の検索結果の動的ファセットとして属性を自動的に使用できます。 動的ファセットが有効になっていない場合、サービス構成に対して動的ファセットが有効になりません。動的ファセットは、オプション enableDynamicPosition=true を指定してリクエストで渡すか、Retail Search モデルに従ってフェッチされます。その後、最も関連性の高い同じモデルによって上位にランキングします。

デフォルトでは、ほとんどのファセットキーはファセット可能です。API の動的ファセット設定は、Search for Retail コンソールのサイト全体の属性コントロールによって、選択した特定のファセットキーについて上書きできます。つまり、一部のファセットキーをファセット不可にするには、[Attribute controls] タブでこれらのキーごとに動的ファセットを無効にする必要があります。詳しくは、サイト全体の属性コントロールの管理をご覧ください。動的ファセットは、正確な商品カタログデータに基づいてのみ作成できます。ただし、この機能がサイトで最適に機能するように、ファセット モデルはサイトのアクティビティから学習する必要があります。このために、検索イベント アップロードのクエリ、カテゴリ、フィルタのフィールドを正確に設定する必要があります。

サービス構成で動的ファセットが有効になっておらず、動的ファセットを有効にしたばかりの場合は、動的ファセットが機能するまで 3~4 日お待ちください。

ファセット コントロール

このセクションでは、さまざまなタイプのファセット コントロールを作成する手順について説明します。

特に明記されていない限り、Vertex AI Search for Retail はこれらのすべてのファセット コントロールに対して大文字と小文字を区別するマッチングを実行します。

ファセット値を無視するコントロールを作成する

特定のファセットキーの不要なファセット値を削除する場合は、ファセット値を無視するコントロールを作成します。

このコントロールは、不要なファセット値(NANot_applicable など)の消去に役立ちます。ただし、10 月であれば、Easter のような季節的な傾向を消去するためにも使用できます。

ファセット値を無視するコントロールを作成するには:

  1. Search for Retail コンソールの [Controls] ページに移動します。

    [Controls] ページに移動

  2. [ファセット コントロール] タブで、 [コントロールを作成] をクリックします。

    [コントロールを作成する] ペインが開きます。

  3. [Ignore facet values] を選択します。

  4. 属性名を指定します。

    たとえば、システム属性の場合は brands です。カスタム属性の場合、名前は attributes. で始まります(例: attributes.departmentattributes.colors)。

  5. 省略可: [開始時間] と [終了時間] のいずれか、または両方を指定します。

  6. 1 つ以上の属性値を [値を無視] として指定します。

    たとえば、NANot_applicableEaster です。

  7. [送信] をクリックします。

ファセット値を置換するコントロールを作成する

複数の類似ファセット値を 1 つの用語に統合する場合は、ファセット値を置換するコントロールを作成します。

ファセット値の置換は、ファセット値の結合とも呼ばれます。

競合と不要なマッピングを避けるため、属性値 facet_value_1 を別の属性値 facet_value_2 に置き換えると、後者を別の属性値に置き換えることはできません。たとえば、rubydark red に置き換えると、dark redred に置き換えることはできません。

各属性名について、[値を置き換える] フィールドに属性値を複数回指定することはできません。

ファセット値を置換するコントロールを作成するには:

  1. Search for Retail コンソールの [Controls] ページに移動します。

    [Controls] ページに移動

  2. [ファセット コントロール] タブで、 [コントロールを作成] をクリックします。

    [コントロールを作成する] ペインが開きます。

  3. [Replace facet values] を選択します。

  4. 属性名を指定します。

    この機能は、先頭が attributes. で始まるカスタム属性(attributes.departmentattributes.colors など)に対してのみ機能します。

  5. 1 つ以上の属性値を [値を置換] として指定します。

    たとえば、REDReddark redbright redrubycrimson です。

    属性値は [値を置換] フィールドに 1 回だけ指定できます。

  6. 単一の属性値を [代替語句] として指定します(例: red)。

  7. [送信] をクリックします。

置き換えられた値はすぐに消える可能性がありますが、代替語句の表示には最大 4 日かかる場合があります。

ファセット値を置き換えるコントロールが有効になったときに、レスポンスでファセットキー(この例では attributes.colors)が返されると、置換されたファセット値(dark redcrimson など)はファセット値として存在しなくなります。これらは代替語句(red など)に置き換えられます。

ファセットの統合コントロールを作成する

製品が Retail Search のデータベースに取り込まれる前に、製品のカスタム属性の名前と値を正しく設定することをおすすめします。ただし、カスタム属性名を変更できない場合は、ファセットの統合コントロールを作成できます。ファセットを別のファセットと結合(置換)する場合は、ファセット統合コントロールを作成します。たとえば、attributes.colors_jeansattributes.colors_clothesattributes.colors_hue などの色のカスタム ファセットキーが複数あり、attributes.colors という既存のカスタム ファセットキーに置き換えるとします。

ファセットを別のファセットに結合するコントロールを作成するには:

  1. Search for Retail コンソールの [Controls] ページに移動します。

    [Controls] ページに移動

  2. [ファセット コントロール] タブで、 [コントロールを作成] をクリックします。

    [コントロールを作成する] ペインが開きます。

  3. [ファセットを統合] を選択します。

  4. 別のファセットに結合する有効なカスタム ファセットキーを指定します。

    この機能は、attributes. で始まる接頭辞を持つカスタム属性(attributes.colors_clothesattributes.colors_jeans など)に対してのみ機能します。

  5. 有効なカスタム ファセットキーを結合されたキーとして指定します。

  6. [送信] をクリックします。

このコントロールが有効になるまで、通常、2 ~ 4 日かかります。

数値間隔を設定するコントロールを作成する

数値間隔を設定するコントロールを使用すると、計算された間隔を受け入れる代わりに、数値ファセットの間隔を決定できます。

たとえば、Retail Search はカスタムの数値ファセットキー attributes.monitor_size に対して、間隔 [10,15)、[15,20) [20,25)、[25,30)、[30,40)、[40,50)、[50,infinity] で計算する可能性があります。しかし、間隔 [0,14)、[14,17)、[17,21)、[21,24)、[24,27)、[27,32)、[32,infinity] が好ましい場合があります。

算出間隔と設定間隔について

すべての数値カスタム属性と数値システム属性 priceratingratingCount について、Retail Search では、すべての(数値)属性値の分布に基づいて、端数を丸めた境界があるいくつかの間隔が計算されます。リクエストで間隔を指定することもできます。最後のオプションとして、次の数値間隔を設定するコントロールを使用して、各数値ファセットキーに独自の間隔を設定できます。

使用する間隔を決定する優先順位は次のとおりです。

  • まず、数値ファセットキーのリクエストで一部の間隔が指定された場合、これらの間隔は保持されます。

  • 数値ファセットキーのリクエストで間隔が指定されず、数値ファセットキーが動的か、間隔なしでリクエストに渡された場合、数値間隔を設定するコントロールを使用して含めた間隔は、これらの間隔が空でなければその数値ファセットキーに追加されます。

  • 上記以外の場合は、前述の端数を丸めた境界がある計算された間隔が追加されます。

コントロールを作成する

数値ファセットキーに、Vertex AI Search for Retail が計算する間隔ではなく、独自の間隔を指定する場合は、数値間隔を設定するコントロールを作成します。

間隔を追加するコントロールを作成するには:

  1. Search for Retail コンソールの [Controls] ページに移動します。

    [Controls] ページに移動

  2. [ファセット コントロール] タブで、 [コントロールを作成] をクリックします。

    [コントロールを作成する] ペインが開きます。

  3. [数値間隔を設定する] を選択します。

  4. 数値属性の名前を指定します。

    たとえば、システム属性の場合は price です。 カスタム属性の場合、名前は attributes. で始まります(例: attributes.number_of_pieces)。

  5. [最小] または [最大] の少なくとも 1 つを指定します。両方を指定する場合、最小値は最大値より大きな値にできません。各境界は、[Inclusive] または [Exclusive] に設定できます。

  6. 間隔を追加するには、[+ Add intervals] をクリックします。間隔の最大数は 40 です。

  7. [送信] をクリックします。

ファセットを削除するコントロールを作成する

ファセットを削除するコントロールを使用すると、動的ファセットから特定のファセットキーを削除できます。ファセットキーは、特定のクエリ語句またはページカテゴリに基づいて削除されます。

このコントロールは、一部のクエリ語句または参照に対するファセットキーを削除する場合に役立ちます。たとえば、このコントロールを使用して、クエリ「靴」のファセットキー attributes.shoe_size を削除できます。

ファセットを削除するコントロールを作成するには:

  1. Search for Retail コンソールの [Controls] ページに移動します。

    [Controls] ページに移動

  2. [ファセット コントロール] タブで、 [コントロールを作成] をクリックします。

    [コントロールを作成する] ペインが開きます。

  3. [ファセットを削除] を選択します。

  4. 各コントロールは検索用または参照用ですが、両方に適用することはできません。次のいずれかを行います。

    • 検索クエリについては、[検索] をクリックして、部分一致のクエリ語句か、完全一致のクエリ語句を指定します。詳細については、クエリ語句条件をご覧ください。どちらの場合もクエリ語句は小文字で指定する必要があります。たとえば、部分的なクエリ キーワード shirtspolojacketst-shirtfall coats を指定できます。小文字のクエリがこれらのクエリ語句のいずれかである場合や、これらのクエリ語句のいずれかを単グラムとして含む場合、次に指定するファセットキーは動的ファセットとして表示されません。

    • 閲覧するには、[カテゴリを閲覧] をクリックし、ページカテゴリを指定します。カテゴリまたは部門のリスト(最大 10 個)を指定できます。形式は、ユーザー イベントのページカテゴリと同じにする必要があります。たとえば、page_categories : Sales > 2023 Black Friday Deals になります。後者とイベント(ブラウズ用)に渡されたページカテゴリの 1 つの間に完全一致(大文字と小文字を区別)がある場合、次に指定されたファセットキーは動的ファセットとして表示されません。

  5. [無視する属性] で少なくとも 1 つの有効なファセットキーを指定します。

  6. [送信] をクリックします。

ファセットを強制的に返すコントロールを作成する

ファセットを強制的に返すコントロールは、特定のクエリや参照イベントに対する動的ファセットキーのリストの位置に影響を与えることがあります。

このコントロールは、一部のクエリ キーワードまたは参照に対する動的ファセットの中で、特定のファセットキーを強制的に表示する場合に役立ちます。たとえば、このコントロールを使用すると、ファセットキー brands がクエリ handbags の位置 10 以下になるように強制できます。ファセット brands がこのクエリの動的ファセットに対してすでに上位 10 位に入っている場合は、あまり動きません。上位 10 位に入っていない場合や、動的ファセットのリスト内にない場合は、おおよそ 10 位の位置に移動します。

ファセットを強制的に返すコントロールを作成するには:

  1. Search for Retail コンソールの [Controls] ページに移動します。

    [Controls] ページに移動

  2. [ファセット コントロール] タブで、 [コントロールを作成] をクリックします。

    [コントロールを作成する] ペインが開きます。

  3. [Force return facets] を選択します。

  4. 各コントロールは検索用または参照用ですが、両方に適用することはできません。次のいずれかを行います。

    • 検索クエリについては、[検索] をクリックして、部分一致のクエリ語句か、完全一致のクエリ語句を指定します。詳細については、クエリ語句条件をご覧ください。どちらの場合もクエリ語句は小文字で指定する必要があります。たとえば、部分的なクエリ キーワード shirtspolojacketst-shirtfall coats を指定できます。小文字のクエリがこれらのクエリ キーワードのいずれかである場合や、クエリ キーワードのいずれかが単グラムとして含まれている場合は、次に指定するファセットキーが動的ファセットのそれぞれの位置の周辺か上に表示されます。

    • 閲覧するには、[カテゴリを閲覧] をクリックし、ページカテゴリを指定します。カテゴリまたは部門のリスト(最大 10 個)を指定できます。形式は、ユーザー イベントのページカテゴリと同じにする必要があります。たとえば、page_categories : Sales > 2023 Black Friday Deals になります。後者とイベント(ブラウズ用)に渡されたページカテゴリの 1 つの間に完全一致(大文字と小文字を区別)がある場合、次に指定されたファセットキーは、動的ファセットの中でそれぞれの位置の周辺か上に表示されます。

  5. 有効なファセットキーと 1~100 の整数位置を指定します。

  6. 複数のファセットキーを指定する場合は、[+ 調整を追加] をクリックして前の手順を再度行います。

  7. [送信] をクリックします。

再ランク付けされた動的ファセット コントロールを作成する

動的ファセット ランキングは、クエリ(検索)またはページカテゴリ(参照)によって異なります。再ランキングの動的ファセット制御では、ユーザーが関与した一部のファセット値にランキングを行うこともできます。

たとえば、このコントロールを使用して、ユーザーが検索または参照後にファセットキー attributes.department のファセット値 watches を操作した場合、ランキングもファセット値 watches によって異なります。ファセットキーで再ランキングするファセット値を指定できます。または、ファセットキーのみを指定してすべてのファセット値を再ランク付けすることもできます。

動的ファセットの再ランキングのコントロールを作成するには:

  1. Search for Retail コンソールの [Controls] ページに移動します。

    [Controls] ページに移動

  2. [ファセット コントロール] タブで、 [コントロールを作成] をクリックします。

    [コントロールを作成する] ペインが開きます。

  3. [動的ファセットを再ランク付け] を選択します。

  4. 有効なカスタム テキスト ファセットキーを指定します(すべてのカスタムキーには attributes. という接頭辞が付いています)。

  5. 特定のファセット値を指定するか、すべてに適用できます。

    • すべてのファセット値を再ランク付けする場合は、[任意の値の変更] をクリックします。

    • 特定のファセット値を再ランキングする場合は、 [選択した値の変更] をクリックします。次に、再ランク付けするすべてのファセット値を挿入します(大文字と小文字は区別されます)。たとえば、watchesluggagesbed になります。

  6. [送信] をクリックします。

次の理由により、ユーザーが関与したすべてのファセットキーをリクエストで渡す必要があります。ユーザーが売上を参照するとします。ユーザーには、提示されたファセットキーの最初のリストが表示されます。次に、ユーザーはファセット キー attributes.age_group を最初に操作します。次に、ファセットキー attributes.department をファセット値 watches で処理し、再ランク付けするコントロールを設定します。その時点で、検索によりキーが再ランク付けされます。したがって、以前に対応したファセットキー attributes.age_group がレスポンスで返されない場合があります。この鍵をリクエストで(enableDynamicPositiontrue に設定した Facetspec を使用)渡すと、自動的に返されます。ただし、検索ではそのキーの位置 27 が返されるので、最初の 20 個のキーだけがユーザーに表示されるようになります。そのため、クライアント側で以前にやり取りしたこれらのキーがユーザーに表示されることを確認する必要があります(エンゲージメントされていない中間キーをいくつか除外しなければならない場合もあります)。ユーザーにキーを提供しすぎないようにする場合が該当します。