SearchおよびRecommendation APIの呼び出し
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
Sitecore Searchでは、Searchおよび推奨APIを使用する際にHTTPSプロトコルが必要です。APIはJSON形式のリクエストを受け付けます。
API URLと方法
API URLはSitecore SearchのDeveloper ResourcesセクションのAPI Accessタブで入手できます。
POSTメソッドを使ってSearchおよびRecommendation APIにリクエストを送信してください。
認証
Sitecore Search REST APIにアクセスするには 認証 が必要です。リクエストヘッダーにAPIキーまたはアクセストークンを使います。
必須対象
APIにリクエストを送信する際、応答を得るために以下のオブジェクトを含める必要があります:
- rfk.domainId - リクエストのヘッダーに追加して、リクエストを行いたいドメインを指定します。
- widget.items.rfkd_id - このキーを追加して、呼び出したいウィジェットの rfkid を指定します。
- widget.items.entity - このキーを追加して、このリクエストで使用したいエンティティを指定します。
- context.locale - マルチロケーションドメインがある場合は、このオブジェクトを追加して結果に使用する国と言語を指定します。
推奨対象
APIにリクエストを送信する際は、以下のオブジェクトを追加することを推奨します。
- context.user.uuid- ページを訪れる訪問者の匿名の一意識別子。このオブジェクトを追加することで、訪問者に関連性の高い検索結果Sitecore Search提供できます。UUIDを通過しなければ、その特定の訪問者に合わせた検索結果ではありません。UUIDの生成方法を学びたい方は、「UUIDを使ってサイト訪問者を追跡する」をご覧ください。
!注もしカスタムUUIDが上記の形式に従わない場合は、カスタムの自由形式IDがSearchリクエストでcontext.user.uuidではなく、context.user.user_idで渡されることを確認してください。
サンプルリクエスト
以下は、キーワードフレーズ「 クラウドコンピューティング」のコンテンツを取得するためのSearch and Recommendation APIへのサンプルPOST requestです。
{ "widget": { "items": { "rfk_id": "rfkid_7", "entity": "content", "search": { "content": {}, "query": { "keyphrase": "cloud computing" } } }
}, "context": { "locale": { "country": "us", "language": "en" } "user": { "uuid": "string" //or "user_id": "string" if your uuid does not follow the example here (https://doc.sitecore.com/search/en/developers/search-developer-guide/using-a-uuid-to-track-site-visitors.html)"uuid": "string" } } }
エラーコード
以下の表は、APIキーやアクセストークンでSitecore Search APIを呼び出す際に起こりうる一般的なエラーを一覧にしています。
表1。エラーコード
ステータスコード
エラー
可能な原因
解決
401 無許可
{"メッセージ":"Unauthorized"}
アクセストークンが欠落、無効、不形、または期限切れです。Authorizationヘッダーが欠落している可能性があります。
有効なAPIキーまたはベアラートークンを送信しているか確認してください。トークンが期限切れの場合は、新しいアクセストークンを生成してください。
---
---
---
---
403 禁断
禁止された応答
認証情報は要求されたAPIにアクセスする権限を持っていません。これは、必要なスコープがAPIキーやトークンに割り当てられていない場合に発生することがあります。現在、一部のスコープ関連の問題では403ではなく401の応答が返されます。
APIキーに必要なスコープが含まれているか確認し、必要に応じて新しいアクセストークンを生成してください。
404ドメインが見つかりません
domain_id_not_found
リクエスト内のドメインIDは存在せず、別の環境に属していません。
ターゲット環境に適したドメインIDとエンドポイントを使用していることを確認してください。
429 リクエストが多すぎる
料金制限を超えた
短期間であまりにも多くのリクエストが送られてしまいました。
リクエスト量を減らし、組織の再試行ポリシーに従って再試行しましょう。
5xxサーバーエラー
内部サーバーエラーまたはサービス利用不可
一時的なサービス問題が発生しました。
組織の再試行ポリシーに従って再度リクエストを試みてください。問題が続く場合はSitecoreサポートに連絡してください。