インジェスションAPIを使ってインデックスにコンテンツを追加する

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

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

Sitecore Searchは「インジェスションAPI」というRESTful APIを公開し、インデックス文書の作成、更新、削除や既存のインジェスリクエストの状況を確認することができます。

!注管理者が作成した ソース のインデックスにドキュメントを追加できます。Ingestion APIを使ってソースを作成することはできません。

インジェスションAPIの主な目的は、コンテンツをプルソースインデックスまたはプッシュソースインデックスにプッシュすることです。

プルソースインデックスへのコンテンツプッシュ

クロールはパフォーマンスに影響を及ぼすことがあります。なぜなら、クローラーはインデックス内の各アイテムを検査する必要があるからです。Ingestion APIを使って 、プルソースインデックスを頻繁に小規模に更新 することをおすすめします。なぜなら、その方がリソース消費が少ないからです。インデックスドキュメントはいつでも追加、編集、削除が可能です。

手動トリガークロールとスケジュールクロールの両方がインデックスとIngestion APIで行った変更を上書きします。変更を保持するために、次のクロール前にアイテムを更新することを忘れないでください。

!重要クローラーのようなプルソースはデフォルトで初期化されたインデックスを持っていないため、インジェスションAPIを使って増分更新を行う前に、それらを使ってインデックス作業を実行する必要があります。

プッシュソースインデックスへのコンテンツプッシュ

Ingestion APIを使って、プッシュソースインデックスにインデックスドキュメントを追加できます。プッシュソースでは、管理者がAPIプッシュソースを作成して空のインデックスを生成します。その後、Ingestion APIを使ってインデックスドキュメントをこのインデックスに追加できます。

!ヒントIngestion APIとwebhookを組み合わせてインデックス文書を追加・修正できます。Webhookは何かが起きたときにアプリから自動的に送信されるメッセージで、コンテンツの変更をIngestion APIに即座に通知し、検索インデックスがリアルタイムで更新されることを保証します。

インジェスションAPIの使用

Sitecore SearchインジェスションAPI HTTPSのみをサポートしています。本体が必要なリクエストは、JSONとして送信しなければなりません。

インジェスションAPIの使い方を助けるために:

  • メニューバーの Developer Resources > API Access セクションでベースURLが見つかります。
  • View Open APIやswaggerリファレン スを閲覧すると、オブジェクトやキーの詳細なデータモデルや説明が見られます。
Ingestion API endpoints and when you can use them.

Ingestion APIには以下のエンドポイントがあり、インデックスドキュメントの作成、更新、削除に利用できます。また、Ingestion APIへのリクエストのステータスを確認するためにも利用できます。

!注以下のエンドポイントの例では、{BASE_URL}のような括弧のテキストは、実装に適した正しい値に置き換える必要があるプレースホルダーを示します。

インデックス文書の作成

以下のエンドポイントを使ってインデックスドキュメントを作成できます:

  • 属性値を渡してインデックス文書を作成する - POST の呼び出し {base-URL}/ingestion/v1/domains/{domain ID}/sources/{sourceID}/entities/{entityID}/documents?locale={locale}
  • ドキュメントエクストラクターを使ってシステム上のファイルからインデックスドキュメントを作成します。POST{base-URL}/ingestion/v1/domains/{domainID}/sources/{sourceID}/entities/{entityID}/file/{documentID}?locale={locale}
  • ドキュメントエクストラクターを使ってURLからインデックス文書を作成します - POST{base-URL}/ingestion/v1/domains/{domainID}/sources/{sourceID}/entities/{entityID}/url/{documentID}?locale={locale}

!重要HTTP 429応答を受け取った場合、着信リクエストの速度がプラットフォームの制限を超えている可能性があります。これはトラフィックの急増や累積ボリュームの増加によるものです。この場合、ドキュメントは取り込まれず保存されず、再度リクエストを送信しなければなりません。

このリスクを減らすために:

  • HTTP 429応答を検出するロジックを実装してください。

  • リトライを管理するには指数的なバックオフを使いましょう。

  • レスポンスにRetry-Afterヘッダーが含まれているか確認し、もし含まれていれば指定された時間後にリクエストを送信します。

さらなるアドバイスはサポートにお問い合わせください。

索引文書の更新

インデックスドキュメントの更新には以下のエンドポイントを使用できます:

インデックス文書の削除

以下のエンドポイントを使ってインデックスドキュメントを削除できます:

  • インデックス文書を削除 - DELETE{base-URL}/ingestion/v1/domains/{domain ID}/sources/{sourceID}/entities/{entityID}/documents/{documentID}?locale={locale}

閲覧リクエストの状況

以下のエンドポイントを使ってインジェスションリクエストのステータスを確認できます:

認証

実装にサブドメインがない場合は、インジェスションAPIにアクセスするためにingestionスコープを持つAPIキーで認証する必要があります。APIキーはSearch Developer Resources > API Accessセクションで取得できます。

!注Ingestion APIへの呼び出しを認証するためにアクセストークンを使うことはできません。

必須パラメータ

インジェスションAPIにリクエストを送信する際には、必須パラメータは2種類あります:

  • データモデルによって義務付けられたパラメータ。すべてのエンドポイントは domain、 source 、 entity パラメータを必要とします。一部のエンドポイントは 他の必須パラメータを必要とします。
  • ドメインで必須とマークされている属性のパラメータです。例えば、ドメインが プロダクト 属性を必要としていて、 product: やロジックを渡して プロダクトの値を抽出しなければ、インデックスドキュメントは作成されませんSearch。

成功する返答を得るために、必須のパラメータをすべて送ることを忘れないでください。

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