1. REST APIを用いた統合

ウォークスルー

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

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

管理者が 属性ソース、検索機能を設定した後、Sitecore Searchと統合して訪問者のための検索体験を作成できます。

APIを通じてこれを行うには、SearchおよびRecommendation APIに呼び出してコンテンツをリクエストし、その応答を使って望む体験を作成してください。同時に、関連するすべてのイベントデータをEvents APIを通じてSearchに送信することも推奨します。

!重要このウォークスルーには、特定の検索体験を作成するために必要なAPIリクエストが含まれています。実装には他の機能が必要かもしれませんが、このウォークスルーを過去のリクエストの上にリクエストを構築するための指針として活用してください。

異なる体験を作るために、Search and Recommendation APIを研究して必要なオブジェクトを見つけ、そのオブジェクトを使ってこのウォークスルーの例に基づいてリクエストを作成してください。同様に、Events APIのオブジェクトを研究して、関連するすべてのイベントをSearchに送信してください。

このウォークスルーは、訪問者が検索結果ページにたどり着き、facetsを見るシナリオに基づいています。その後、訪問者は検索バーにキーワードを入力し、preview searchウィジェットで提案が表示されます。訪問者が提案をクリックすると、新しい結果が表示された結果ページが表示され、結果を絞り込むためにファセット値を選択します。その後、結果をコンテンツタイトルの降順に並べ替え、content itemをクリックします。

このウォークスルーでは、以下のためのAPIリクエストの形成方法を説明します:

  • facetsを用いた検索結果ページを作成する
  • recommendationsに出てもらいpreview search
  • キーワードに基づいて検索結果ページを作成する
  • ファセット値でフィルタリングされた検索結果ページを作成する
  • ソートを適用した検索結果ページを作成する
  • 訪問者をコンテンツページにリダイレクトします
  • Send events to Search

!注preview searchウィジェットで提案を表示するためのAPIリクエストを除き、以下のリクエストはすべて前のリクエストに基づいています。

facetsを用いた検索結果ページを作成する

訪問者が最初に検索ページにたどり着いたとき、検索結果やfacetsを表示したいのです。

facetsを含む検索結果ページを作成するには:

  • コンテキスト、コンテンツ、 ファセット オブジェクトを追加し、検索結果ページのIDを rfk_idの値として渡します。

以下は、facetsを含む検索結果ページを表示するためのサンプルCURLリクエストです:

curl --location 'https://discover.sitecorecloud.io/discover/v2/159871551' \ --header 'Authorization: 01-22977f73-b96bm327df2ffc7ip16d4c030a201240ced2487n' \ --data '{ "context": { "user": { "UUID": "159828561-m7-17-44-1p-c0ya4nb69t8o0iho2eia-1667926756187" }, "locale": { "country": "us", "language": "en" } }, "widget": { "items": { "entity": "content", "rfk_id": "rfkid_7", "search": { "content": {}, "facet": { "all": true, "max": 100 } } }

} }'

以下はサンプルの回答です:

{ "widgets": { "rfk_id": "rfkid_7", "type": "content_grid", "entity": "content", "facet": { "name": "type", "label": "Type", "value": { "id": "facetid_eyJ0eXBlIjoiZXEiLCJuYW1lIjoidHlwZSIsInZhbHVlIjoiTmV3cyJ9", "text": "News", "count": 688 }, { "id": "facetid_eyJ0eXBlIjoiZXEiLCJuYW1lIjoidHlwZSIsInZhbHVlIjoiQ3VzdG9tZXJzIn0=", "text": "Customers", "count": 576 }, ...

}, { "name": "review_rating", "label": "Rating", "value": { "id": "facetid_eyJ0eXBlIjoiZXEiLCJuYW1lIjoidHlwZSIsInZhbHVlIjoiTmV3cyJ9", "text": "5", "count": 310 }, { "id": "facetid_eyJ0eXBlIjoiZXEiLCJuYW1lIjoidHlwZSIsInZhbHVlIjoiQ3VzdG9tZXJzIn0=", "text": "4", "count": 780 }, ...

} , "content": { "description": null, "id": "https___www_sitecore_com_company_newsroom_news_2023_03_sitecore-named-a-leader-for-dxp", "review_rating": "5", "image_url": "https://wwwsitecorecom.azureedge.net/-/media/sitecoresite/2023-gartner-magic-quadrant-for-digital-experience-platforms-dt-3.png?md=20230316T153407Z", "source_id": "730959", "title": "Sitecore named a Leader for DXP", "keywords": "DXP","gartner", "type": "News", "url": "https://www.sitecore.com/company/newsroom/news/2023/03/sitecore-named-a-leader-for-dxp" }, { "description": " active and real-time content integration framework for consistent and continuous data synchronization of product content and assets across Sitecore Content Hub and OrderCloud....", "review_rating": "4", "image_url": "https://wwwsitecorecom.azureedge.net/-/media/sitecoresite/images/home/marketplace/appmarketplace.svg?md=20220328T214947Z", "source_id": "730959", "title": "Connector & App Marketplace", "keywords": "connector","content hub", "data synchronization", "type": "Others", "url": "https://www.sitecore.com/products/marketplace" } ... , "total_item": 3443, "limit": 10, "offset": 1 } , "dt": 45, "ts": 1680573661787 }

回答を使って検索体験を作成する方法:

  1. ページ上のcontent itemsリストを表示するには、レスポンスの widgets.content オブジェクトをご覧ください。各content itemについて、 タイトル、説明、画像、URLをタイトル、 説明image_urlURL フィールドから取得してください。
  2. facetsを示すには、応答の widgets.facet オブジェクトを見てから:
    • facet.labelフィールドからファセットの名前を抽出します。ここに、TypeRatingの2つのfacetsがあります。

    • facet.valueオブジェクトから各ファセットのファセット値を取得します。textキーの値をファセット値の名前として使い、ページに表示します。countの値はそのファセット値のcontent items数として使います。

      例えば、のファセットには688 content itemsの4のファセット値Newsを使うことができます。同様に、review_ratingのファセットには310 content itemsの5というファセット値を使うことができます。

訪問者が検索バーにキーワードを入力したとき、提案を表示したいのです。

preview searchウィジェットにrecommendationsを表示するには:

この例では、訪問者がキーワードclouを入力し、Keyword属性に基づく提案を表示したい場合です。

以下は、preview searchウィジェットの キーワード 属性に基づいてrecommendationsデータを表示するためのサンプルCURLリクエストです:

curl --location 'https://discover.sitecorecloud.io/discover/v2/159871551' \ --header 'Authorization: 01-21667f73-b96bn327df2ffc7ab16d4c030a201240ced2490a' \ --data '{ "context": { "user": { "UUID": "159828561-m7-17-44-1p-c0ya4nb69t8o0iho2eia-1667926756187" }, "locale": { "country": "us", "language": "en" } }, "widget": { "items": { "entity": "content", "rfk_id": "rfkid_6", "search": { "content": {}, "query": { "keyphrase": "clou" }, "suggestion": { "name": "keyword_suggester" }

} }

} }'

ご覧の通り:

  • suggestionオブジェクトに渡す値は、Searchで設定されたsuggestion blockと管理者のAPI名です。
  • rfk_idに渡す値は、Searchのデフォルトのpreview searchウィジェットのIDです。

こちらがこのリクエストへのサンプル回答です:

{ "widgets": { "rfk_id": "rfkid_7", "type": "content_grid", "entity": "content", "suggestion": { "keyword_suggester": { "text": "cloud faq", "freq": 14 }, { "text": "cloud addendum", "freq": 3 }, { "text": "cloud portal", "freq": 3 } ...

}, "total_item": 0, "limit": 10, "offset": 0 } , "dt": 13, "ts": 1680632333374 }

この回答を使ってこの検索体験を作成する方法:

  1. 提案を示すには、回答の widgets.suggestion.name_suggestor 配列を参照してください。この配列には、それぞれ text と freqを持つ提案のリストがあります。
  2. preview searchウィジェットで一つの提案を表示するには、 textの値が表示されます。

freqキーの値は、そのリクエストに関連するコンテンツコレクションの部分でフレーズがどれだけ頻繁に出現するかを示します。例えば、cloud FAQはこのクエリに関連する検索結果のプールに14回表示されます。

キーワードに基づいて検索結果ページを作成する

訪問者が提案をクリックすると、キーワードに基づいて修正された検索結果ページが表示されます。

キーワードに基づいて検索結果ページを作成するには:

この例では、訪問者は提案 クラウドポータルをクリックします。

以下は、キーワードに基づく検索結果ページを表示するためのサンプルリクエストです:

{ "context": { "locale": { "country": "us", "language": "en" }, "user": { "uuid": "43533744-1y-6i-4j-1p-nn0if7kfzq8kw3am4i17-1664982959269" } }, "widget": { "items": { "entity": "content", "rfk_id": "rfkid_7", "search": { "content": {}, "facet": { "all": true, "max": 100 }, "query": { "keyphrase": "cloud portal" } } }

} }

ファセット値でフィルタリングされた検索結果ページを作成する

訪問者が結果を絞り込むためにファセット値を選択すると、そのファセット値に基づいてフィルタリングされた結果が表示されます。

「ファセット値でフィルタリングされた検索結果ページを作成する」

この例では、訪問者はType面でBlogsを選択します。

以下は、ファセットバリュー facetid_eyJ0eXBlIjoiZXEiLCJuYW1lIjoicHJvZHVjdCIsInZhbHVlIjoiRGlzY292ZXIifQでフィルタリングされた検索結果ページを表示するためのサンプルリクエストです:

!注facetid_eyJ0eXBlIjoiZXEiLCJuYW1lIjoicHJvZHVjdCIsInZhbHVlIjoiRGlzY292ZXIifQBlogsファセット値のIDです。この値は、前回のリクエストへの応答、キーワードに基づく検索結果ページの作成、またはfacetsを求めるリクエストからも可能です。

{ "context": { "locale": { "country": "us", "language": "en" }, "user": { "uuid": "43533744-1y-6i-4j-1p-nn0if7kfzq8kw3am4i17-1664982959269" } }, "widget": { "items": { "entity": "content", "rfk_id": "rfkid_7", "search": { "content": {}, "suggestion": { "name": "title_context_aware" } , "facet": { "all": true, "max": 100, "types": { "name": "type", "filter": { "values": "facetid_eyJ0eXBlIjoiZXEiLCJuYW1lIjoicHJvZHVjdCIsInZhbHVlIjoiRGlzY292ZXIifQ==" , "type": "or" } }

}, "query": { "keyphrase": "cloud portal" } } }

} }

ソートを適用した検索結果ページを作成する

訪問者がタイトルの降順で結果を並べ替えると、検索結果は並べ替え順に表示されます。

ソートを適用した検索結果ページを作成するには:

  • 前回送信したリクエストを修正して、 サイド値でフィルタリングされた検索結果ページを作成 して ソートオブジェクトを追加してください。

この例では、訪問者はタイトルの降順でソートします。

以下は、検索結果ページがコンテンツタイトルの下から順に並べられた表示のためのサンプルリクエストです:

{ "context": { "locale": { "country": "us", "language": "en" }, "user": { "uuid": "43533744-1y-6i-4j-1p-nn0if7kfzq8kw3am4i17-1664982959269" } }, "widget": { "items": { "entity": "content", "rfk_id": "rfkid_7", "search": { "content": {}, "facet": { "all": true, "max": 100, "types": { "name": "type", "filter": { "values": "facetid_eyJ0eXBlIjoiZXEiLCJuYW1lIjoicHJvZHVjdCIsInZhbHVlIjoiRGlzY292ZXIifQ==" , "type": "or" } }

}, "query": { "keyphrase": "cloud portal" }, "sort": { "choices": true, "value": { "order": "asc", "name": "desc_name" }

} } }

} }

sortオブジェクトで、管理者がソート設定時に作成したソートオプションのAPI名前を渡します。ここでは「desc_name」というソートオプションを使用します。

訪問者をコンテンツページにリダイレクトします

訪問者がコンテンツを整理した後、content itemをクリックします。これに対処するために、訪問者がcontent item内のどこかでクリックした際にcontent itemのURLへのリダイレクトを作成します。

訪問者がウィジェットをクリックしたり、ログインしたり、記事にアップボートしたりしてあなたのページとやり取りする際、そのやり取りを追跡し、イベントAPIを使ってその情報をSitecore Searchに送信する必要があります。

Sitecore Searchイベントを使ってサイト全体の訪問者データを追跡します。このデータは検索ランキング、分析生成、検索結果やrecommendationsのパーソナライズに使われます。イベントREST APIを使ってイベントを送信できます。

このウォークスルーでは、訪問者が取る各アクションごとに以下の イベント を送信します。

来訪者の行動

送るイベント

検索結果ページに止まり、content items and facets を見る

view``widget

view``entity_page

検索バーにキーワードを入力し、preview searchウィジェットで提案を見ることができます

view``widget

Click a Suggestion をクリックすると、新しい結果が表示される検索結果ページが表示されます

click``widget

リクエストでは、 suggestion を action_causeの値として渡します。

view``widget

結果を絞り込むためにファセット値を選択します

view``widget

click``widget

リクエストでは、 filter を action_causeの値として渡します。

結果をコンテンツタイトルの降順で並べ替えてください

view``widget

Click a content item を選んで、そのコンテンツのページに移動します

clickwidget。

リクエストでは、 entity を action_causeの値として渡します。

view``entity_page

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