複数のエンティティからの属性の集計
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
リレーショナルデータがあり、複数のcontent itemsの情報を新しい属性に結合する場合は、集計を使用して タグ を設定します。
タグを1つ以上のエンティティにのみ割り当てる単純なタグ設定が必要な場合は、基本タグを使用します。基本タグでは、Searchは共有属性に基づいて評価および照合しません。
集計を使用してタグを構成する場合は、Searchが評価および照合する属性間のマッピングを定義します。また、一致が成功したときにインデックスドキュメントに含める属性も指定します。
このトピックでは、異なるエンティティ内の属性間に関係がある場合、つまり フラット集計が必要な場合にタグを作成する方法について説明します。同じエンティティ内の属性間の関係を定義するには、階層集計を使用してタグを定義します。これを行うには、フラット集計を使用してタグを構成するのと同じプロセスに従いますが、同じエンティティ内でフィールドを正確に定義してください。
このトピックでは、次のシナリオでフラット集計を使用してタグを作成する方法を示します。
-
俳優や映画に関する情報を掲載したWebサイトがあります。
-
実装には、ActorエンティティとMovieエンティティがあります。
-
Actorエンティティには、次の属性があります。
-
actor_id
-
actor_name.
-
actor_description
-
actor_age
-
actor_gender
-
-
Movieエンティティには、次の属性があります。
-
movie_id
-
movie_name
-
movie_genre
-
movie_year
-
movie_cast
-
movie_director
-
movie_awards
-
-
-
この検索エクスペリエンスを設定すると、俳優が検索結果として表示されたときに、その俳優が出演した映画のリストが表示されます。
このエクスペリエンスをサポートするには、Actor属性を持つインデックス ドキュメントと、そのユーザーが出演した映画を一覧表示する属性が必要です。これを取得するには、Actorエンティティの下にフラット集計を使用してタグを作成し、それをMovieエンティティに関連付けることもできます。次に、アクターの名前をエンティティ間の共通属性として使用し、アクターをムービーにマッピングします。
これを行う理由は次のとおりです。 Actorエンティティには映画情報がありませんが、Movieエンティティにはmovie_cast属性に含まれる俳優情報があります。
集計を使用してタグを設定する前に、次の手順を実行します。
-
集計された情報を保持する新しい属性を作成しますarray of objects
これは、フラット集計または階層集計で作成したタグに対して行う必要があります。
この例では、Actorエンティティに属するfilmographyという属性を作成できます。
フラット集計を使用してタグを設定するには:
-
メニュー バーでSourcesをクリックし、作成したソースを選択します。
-
Source Settingsページの左側のメニューでTags Definitionをクリックし、
Editをクリックします。 -
タグをエンティティに関連付けるには、Entityドロップダウン リストでエンティティをクリックします。
この例では、Actorエンティティをクリックします。
手記集計を使用してタグを構成する場合、Entityをタグのプライマリエンティティまたは親エンティティと考えることができます。
-
集約を使用してタグを設定するように指定するには、Fromドロップダウン リストでAggregationsをクリックします。使用する集計のタイプを設定するには、Typeドロップダウン リストで、必要な集計のタイプをクリックします。
この例では、「 Flat」をクリックします。
-
タグに名前を付けるには、Source Tagフィールドに、タグを追加するエンティティの名前を入力します。
この例では、次のように入力します。 Actor
-
属性を借用するエンティティfromを定義します。これを行うには、Foreign Tagフィールドにエンティティの名前を入力します。
この例では、Movieと入力します。
手記集計を使用してタグを構成する場合、Foreign Tagをタグの外部エンティティと考えることができます。
-
親エンティティ (Step 2で定義したEntity) のどの属性をベースラインとして使用して、マッピングが可能かどうかを確認します。これを行うには、Source Fieldフィールドに、親エンティティの属性の名前を入力します。
この例では、actor_nameと入力します。
-
マッピングが可能かどうかを確認するために比較として使用する外部エンティティの属性を定義します。これを行うには、Foreign Fieldフィールドに属性名を入力します。
この例では、movie_castと入力します。これは、movie_cast文字列の配列であり、各文字列がこの映画の俳優の名前であるため、これを行うことができます。
-
外部エンティティのコンテンツを結合して保持する属性を指定します。これを行うには、Target Fieldに、前提条件で設定した属性の名前を入力します。
この例では、filmographyと入力します。
-
インデックスドキュメントにプルする外部エンティティの属性を指定します。これを行うには、Fields to Projectフィールドに、外部エンティティの属性名を入力します。
抽出後、マッピングが成功すると、これらの属性は、Target Fieldとして指定した新しいarray of objects属性内にネストされて表示されます。
たとえば、「 movie_name、movie_year、movie_genreと入力します。
-
Click Save。
手記オプションで、このインデックスドキュメントに別のエンティティの属性も含める場合は、手順2から9を繰り返します。 Source Tagsフィールドに入力するタグ名が、最初に作成したタグと同じであることを確認してください。これは、新しいタグを定義するのではなく、既存のタグの範囲を拡張するためです。
タグを設定したら、ソースの ドキュメント抽出ツール で、作成したタグを選択し、ユースケースに応じて属性を抽出します。