Ingestion APIを使用してインデックスにコンテンツを追加する
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
Sitecore Searchインデックスドキュメントの作成、更新、削除、および既存の取り込み要求の状態の確認に使用できるインジェストAPIと呼ばれるRESTful APIを公開します。
管理者が作成した ソース のインデックスにドキュメントを追加できます。Ingestion APIを使用してソースを作成することはできません。
インジェストAPIの主な目的は、コンテンツをプル ソース インデックスまたはプッシュ ソース インデックスにプッシュすることです。
プルソースインデックスへのコンテンツのプッシュ
クローラーはインデックス内の各項目を検査する必要があるため、クロールはパフォーマンスに影響を与える可能性があります。インジェストAPIを使用して、プル ソース インデックスを頻繁に小規模に更新 すると、リソースの負荷が軽減されるため、頻繁に行うことをお勧めします。インデックスドキュメントはいつでも追加、編集、または削除できます。
手動でトリガーされたクロールとスケジュールされたクロールの両方で、インデックスとインジェストAPIを使用して行われた変更が上書きされます。変更を保持するには、次のクロールの前に項目を更新してください。
クローラーなどのプルソースにはデフォルトで初期化されたインデックスがないため、インジェストAPIを使用して増分更新を行う前に、クローラーを使用してインデックス作成ジョブを実行する必要があります。
プッシュソースインデックスへのコンテンツのプッシュ
インジェストAPIを使用して、プッシュソースインデックスにインデックスドキュメントを追加できます。プッシュソースでは、管理者はAPIプッシュソースを作成して空のインデックスを生成します。その後、Ingestion APIを使用して、インデックス ドキュメントをこのインデックスに追加できます。
Webhookで取り込みAPIを使用して、インデックス ドキュメントを追加または変更できます。Webhookは、何かが発生したときにアプリから送信される自動メッセージであり、コンテンツの変更をIngestion APIに即座に通知し、検索インデックスがリアルタイムで更新されるようにします。
インジェストAPIの使用
Sitecore Search Ingestion APIはHTTPSのみをサポートします。本文を必要とするリクエストの場合は、JSONとして送信する必要があります。
Ingestion APIの操作を支援するには、次の手順を実行します。
-
メニュー バーのDeveloper Resources > API Accessセクションに、ベースURLがあります。
-
Open APIまたはSwaggerリファレンスをViewして、詳細なデータモデルとオブジェクトとキーの説明を確認します。

インジェストAPIには、インデックス ドキュメントの作成、更新、削除に使用できる次のエンドポイントがあります。また、これを使用して、Ingestion APIへのリクエストのステータスを表示することもできます。
次のエンドポイントの例では、{:placeholder-token:}{BASE_URL}{/:placeholder-token:} などの中かっこ内のテキストは、実装の正しい値に置き換える必要があるプレースホルダーを示します。
インデックス文書の作成
次のエンドポイントを使用して、インデックス ドキュメントを作成できます。
-
属性値を渡してインデックスドキュメントを作成する - 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ヘッダーが含まれているかどうかを確認し、含まれている場合は、指定した時間後にリクエストを送信します。
詳細については、サポートにお問い合わせください。
インデックス文書の更新
次のエンドポイントを使用して、インデックスドキュメントを更新できます。
-
属性値を渡してインデックスドキュメントを更新 (完全に置換) する - PUT{base-URL}/ingestion/v1/domains/{domain ID}/sources/{sourceID}/entities/{entityID}/documents/{documentID}?locale={locale}
-
属性値を渡して索引文書を部分的に更新 する - PATCH{base-URL}/ingestion/v1/domains/{domain ID}/sources/{sourceID}/entities/{entityID}/documents/{documentID}?locale={locale}
インデックス文書の削除
次のエンドポイントを使用して、インデックス ドキュメントを削除できます。
-
インデックス ドキュメントの削除 - DELETE{base-URL}/ingestion/v1/domains/{domain ID}/sources/{sourceID}/entities/{entityID}/documents/{documentID}?locale={locale}
要求状況の表示
次のエンドポイントを使用して、取り込みリクエストのステータスを表示できます。
-
索引文書の追加、更新、削除要求の状況の確認 - GET{base-URL}/ingestion/v1/domains/{domain}/sources/{source}/entities/{entity}/status/{incrementalUpdateId}
認証
実装にサブドメインがない場合、取り込みAPIにアクセスするには、ingestionスコープを持つAPIキーで認証する必要があります。APIキーはSearchで入手できます 、Developer Resources > API Accessセクションにあります。
アクセス トークンを使用して、インジェストAPIへの呼び出しを認証することはできません。
必須パラメータ
Ingestion APIにリクエストを送信する場合、必須パラメータには次の2つのタイプがあります。
-
データ・モデルによって必須のパラメーター。すべてのエンドポイントには、domain、source 、およびentityパラメータが必要です。一部のエンドポイントでは 、他の必須パラメータが必要です。
-
ドメインで必須としてマークされている属性のパラメータ。たとえば、ドメインでproduct属性が必要で、productの値を抽出するproduct:<value>またはロジックを渡さない場合、Searchはインデックスドキュメントを作成しません。
応答を正常に行うには、必須パラメーターをすべて送信してください。