1. インデックス項目

クローラータグ

日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

Sitecore Searchでは、タグはソースレベルのメカニズムであり、特定の検索エクスペリエンスを作成するために使用する属性を正確に制御できます。タグはエンティティとソース間の接続を確立し、同じエンティティまたは異なるエンティティからの属性の組み合わせと集約を使用してインデックス ドキュメントを柔軟に作成できるようにします。

メモ

タグは、高度なWebクローラー およびAPIクローラー ・ソースで使用できます。

属性抽出ルールを設定する場合は、エンティティごとではなく、タグごとに設定します。その結果、抽出ルールを構成するタグごとに1つのインデックス文書セットが取得されます。タグを計画および構成するときは、この点に留意してください。

タグはソースに固有であり、ソース間で保持されません。例えば、ソースAactor with moviesというタグを定義すると、そのタグはソースAに固有です。ソースBを作成し、actor with moviesという名前の別のタグを定義すると、Searchはそれを独自のロジックを持つ新しいタグと見なします。

ソースを作成すると、いくつかのdefault tagsが得られます。また、特定の検索エクスペリエンスを構築するためのcustom tagsを作成することもできます。

既定のタグ

Sitecore Searchは、ソースを作成するときにデフォルトのタグを自動的に生成します。各タグは、ドメイン内のエンティティに対応します。デフォルト・タグを使用して、ドキュメント・エクストラクタで属性抽出ルールを定義できます。

デフォルトのタグは、次の場合に十分です。

  • 1つのエンティティの属性を使用して、1つの検索エクスペリエンスのみを作成する必要があります。

    そして

  • 各索引文書に、1つのcontent itemのみの属性値を含める必要があります。つまり、複数のcontent itemsの属性を結合または集約したくありません。

たとえば、訪問者が俳優、テレビ番組、映画を検索できる映画やテレビのWebサイトを考えてみましょう。訪問者が結果が属する各エンティティの属性のみを表示する検索エクスペリエンスを作成する必要があります。これを行うには、ドキュメント抽出器でデフォルトタグの抽出ルールを定義するだけです。

カスタムタグ

カスタムタグは、作成したタグです。デフォルトのタグでは不十分な場合は、カスタムタグを使用します。カスタムタグは必要な数だけ作成できます。

通常、次の場合にカスタムタグを設定する必要があります。

  • 1つのエンティティの属性を使用して、複数の検索エクスペリエンスを作成する必要があります。

    又は

  • 属性値の集約または複数のエンティティからの属性の組み合わせを使用して、インデックス ドキュメントをインデックス ドキュメントに拡張します。

映画やテレビのWebサイトの例を続けるには、俳優が出演した映画のリストと、nameageなどの一般情報を表示する検索エクスペリエンスを作成するとよいでしょう。この例では、Actorエンティティのどの属性でもムービー情報を使用できません。ただし、Movieエンティティにはmovie_actor属性があります。このリレーションシップを使用して、俳優を出演した映画のリストに関連付けることができます。

Searchでカスタムタグを設定するには、Basic tag configurationAggregated tag configurationの2つの方法があります。

基本タグ

基本タグは、エンティティから複数のインデックスドキュメントセットを作成する場合に使用する簡単な設定です。通常、1つ以上のタグを定義し、それらをエンティティに割り当てます。

先端

1つの基本タグを1つのエンティティにのみ割り当てることをお勧めします。複数のエンティティに基本タグを割り当てると、エンティティを個別の検索インデックス付きオブジェクト型として使用できないようにします。基本タグにはマッピング定義がないため、複数のエンティティで同じ基本タグを使用すると、有用な検索エクスペリエンスに役立たない整理されていないインデックス ドキュメントが表示される可能性があります。

代わりに、複数のエンティティから1つのインデックスドキュメントに属性をプルする場合は、aggregated tag configurationを使用することをお勧めします。

たとえば、Webサイトの場合、一部のブログは社内のライターによって書かれ、一部は外部のフリーランサーによって書かれています。どちらのタイプのブログも同じ属性を持ちますが、異なる属性抽出ロジックが必要です。訪問者には、すべてのブログを検索できる統一された検索エクスペリエンスを提供したいと考えています。実装にはBlogという1つのエンティティがあります。

この要件を処理する1つの方法は次のとおりです。internal blogsという基本タグを構成し、Blogエンティティでexternal blogsを構成できます。internal blogsタグの属性を抽出する場合は、内部コンテンツに適した抽出ロジックを使用します。external blogsタグの属性を抽出する場合は、外部コンテンツに適した抽出ロジックを使用します。

手記

この要件を処理する別の方法は、外部コンテンツ用と内部コンテンツ用の2つのソースを構成することです。開発者は実行時に渡すために複数のソースIDを追跡する必要がないため、タグの使用が簡単です。

internalタグ用に抽出されたインデックス ドキュメントのサンプルを次に示します。

 "id": xvsusdua232533ygd,
 "name": "Top 10 Most Anticipated Cars in 2024",
 "type": "blog",
 "description": "some description"

externalタグ用に抽出されたインデックス ドキュメントのサンプルを次に示します。

 "id": agahsfeev1nnbsa7d,
 "name": "How to Save 10% on Your New Car",
 "type": "blog",
 "description": "some other description"

ご覧のとおり、両方のタグによって抽出されたインデックス ドキュメントは同じように見えます。インデックス ドキュメントの両方のセットのAttributesは、Blogエンティティからのものです。唯一の違いは、抽出ロジックでした。訪問者にとって、freelancerコンテンツとinternalコンテンツに違いはありません。

集計タグ

集計タグ構成は、複数のcontent itemから関連する属性を持つインデックス ドキュメントを作成できる高度な設定です。マッピングを定義して、関連する属性を集約します。次に、この集計情報を結合して保持する新しい属性を作成します。集計によるタグの構成は、リレーショナル データを扱う際の検索エクスペリエンスを向上させる強力な方法です。

集計タグは、同じエンティティまたは異なるエンティティ内の属性間の関係を利用する場合に使用します。この関係の例としては、アイテムにnameidなどの共有属性値がある場合が挙げられます。

同じエンティティ内の属性間の関係を定義するか、他のエンティティの属性間の関係を定義するかに応じて、flat集計またはhierarchical集計を使用します。

異なるエンティティの属性を結合するためのフラット集計

フラット集計は、複数のエンティティにまたがる関連項目からの集計情報を含む新しい属性でインデックス文書を強化する場合に使用します。

たとえば、俳優、映画、テレビ番組に関する情報を含むWebサイトがあるとします。訪問者が結果を検索できる検索バーがあります。実装には、ActorエンティティとMovieエンティティがあります。 Actorエンティティには、actor_nameactor_ageなどの属性があります。俳優が出演した映画に関する属性はありません。 Movieエンティティには、movie_namemovie_yearなどの属性と、アクターのリストを含むmovie_cast属性があります。

次の検索エクスペリエンスを作成します。俳優が登場したら、その俳優が出演した映画のリストも表示します。

このエクスペリエンスをサポートするには、Actor属性と、そのユーザーが出演した映画を一覧表示する属性を持つインデックス ドキュメントが必要です。

これらのインデックス ドキュメントを取得するには、Actorエンティティの下にフラット集計を使用してタグを作成し、それをMovieエンティティに関連付けます。次に、俳優の名前をベースラインとして使用して、俳優が出演した映画を検索するようにこのタグを設定します。

このタグ用に抽出されたサンプルインデックスドキュメントを次に示します。

{
  "actor_id": "A101",
  "actor_name": "Tom Cruise",
  "actor_description": "A critically acclaimed actor...",
  "actor_age": 61,
  "actor_gender": "male",
  "filmography": [
    {
      "movie_name": "Top Gun",
      "movie_year": 1986,
      "movie_genre": "Action"
    },
    {
      "movie_name": "Edge of Tomorrow",
      "movie_year": 2014,
      "movie_genre": "Science Fiction"
    },
    ...
  ]
手記

このサンプル インデックス ドキュメントでは、filmography配列内の属性は、Movieエンティティ内の他の項目から取得され、1つのキャスト値がTom Cruiseです (キャストが文字列の配列であると仮定します)。

1つのエンティティの属性を結合するための階層集計

階層集計は、1つのエンティティ内の関連項目からの集計情報を含む新しい属性を使用してインデックス ドキュメントを強化する場合に使用します。

たとえば、訪問者が会社で働く従業員を検索できるWebサイトがあるとします。実装にはEmployeeというエンティティがあり、このエンティティの属性の1つはmanagerです。

次の検索エクスペリエンスを作成します。従業員が検索結果に表示されたら、その同僚のリストも表示します。

このエクスペリエンスをサポートするには、通常のEmployee属性を持つインデックス ドキュメントと、同僚を一覧表示する属性が必要です。

これらのインデックス ドキュメントを取得するには、Employeeエンティティの下にタグを作成します。次に、このタグを構成して、manager属性をベースラインとして使用して、同じマネージャーの従業員を検索する、つまり同僚を検索します。

このタグ用に抽出されたサンプルインデックスドキュメントを次に示します。

{
  "employee_id": 1,
  "name": "John Doe",
  "position": "Senior developer",
  "department": "R&D",
  "manager": "Mary Smith",
  "colleagues": [ 
    {
      "employee_id": 2,
      "name": "Jane Smith",
      "position": "Lead Developer",
    },
    {
      "employee_id": 3,
      "name": "David Johnson",
      "position": "Senior  Developer",
    }
  ]
}
手記

このサンプル・インデックス・ドキュメントでは、colleagues配列内の属性は、manager値がMary SmithEmployee・エンティティ内の他のcontent itemsから取得されます。

例: 3つのエンティティを持つ実装のタグ

訪問者が俳優、テレビ番組、映画を検索できる映画やテレビのWebサイトを考えてみましょう。実装には、ActorMovie 、およびTVShowエンティティがあります。

Actorエンティティには、actor_awardsactor_ageactor_genderactor_moviesactor_nameactor_imageactor_tvactor_bioの属性があります。

Movieエンティティには、movie_descriptionmovie_awardsmovie_actormovie_namemovie_ratingmovie_studiomovie_directormovie_posterの属性があります。

TV Showエンティティには、tv_nametv_casttv_ratingtv_postertv_episodestv_seasonsの属性があります。

次の検索エクスペリエンスを作成します。

  • 俳優が登場すると、訪問者はその俳優のすべての詳細を見ることができます。

  • テレビ番組が表示されると、訪問者にはテレビ番組の詳細と関連するキャストの詳細が表示されます。

  • 映画が表示されると、訪問者には映画の詳細と関連するキャストの詳細が表示されます。

次の図は、目的の検索エクスペリエンスを取得するために使用できるサンプルソースとタグの設定を示しています。

Image showing the relationship between entities, attributes, sources, and tags. The entities are Actor, Movie, and TV Show. There are three sources. Each source has one tag each.

この画像の説明は次のとおりです。

  • すべてのアクター情報を表示するには、ソース (ソース1 ) を作成し、Actorエンティティに対して作成Search既定のactorタグを使用します。ドキュメント抽出ツールで、actorタグで、使用可能なすべての属性を抽出します。これにより、すべてのアクターの詳細を含むインデックス ドキュメントが取得されます。

    手記

    この検索エクスペリエンスを実現するためにカスタム タグを定義する必要はありません。

  • テレビ番組の放送時にキャストの詳細とテレビ番組の詳細を表示するには、別のソース(ソース2)を作成します。このソースでは、tv with actor,というフラット集計を使用してタグを作成し、それをTVShowエンティティに関連付けて、Actorエンティティから借用するように構成できます。ドキュメント抽出器で、このタグに対して、TVShowエンティティとActorエンティティの両方から必要な属性を抽出します。

  • テレビ番組の放送時にテレビ番組の詳細とともにキャストの詳細を表示するには、別のソース(ソース3)を作成します。このソースでは、movie with actorというフラット集計を使用してタグを作成し、それをMovieエンティティに関連付け、Actorエンティティから借用するように構成できます。ドキュメント抽出器で、このタグに対して、TVShowエンティティとActorエンティティの両方から必要な属性を抽出します。

手記

簡潔にするために、この例は、それぞれ1つのタグを持つ3つのソースに制限されています。実際には、ソースに複数のタグが必要になる場合もあれば、より多くのソースが必要になる場合もあります。

たとえば、映画の詳細のみから取得する検索エクスペリエンスを用意したい場合があります。これを有効にするには、ムービーコンテンツのみを抽出するソースを作成し、デフォルトのmovieタグを使用してすべての属性を抽出します。

この記事を改善するための提案がある場合は、 お知らせください!