---
title: "文書の部分的な更新"
slug: "partially-updating-a-document"
abstract: "インデックス文書の一部を更新するためのインジェスションAPIの使い方を説明Sitecore Search。"
---
# 文書の部分的な更新

インジェスションAPIのベースURLのPATCHメソッドを使って、インデックスドキュメント内の1つ以上の属性値を更新してください。

> !重要管理者が [プル](https://doc.sitecore.com/search/en/users/search-user-guide/en/manually-trigger-a-recrawl-or-reindex.html) ソースを再クロールする場合、手動または [スケジュールされたクロール](https://doc.sitecore.com/search/en/users/search-user-guide/en/configure-a-crawler-schedule.html)を通じて、Searchは元のコンテンツの最新データですべてのインデックス文書を更新します。この操作は、Ingestion APIを通じて行った更新が元のコンテンツにも適用されていない場合に上書きします。これを防ぐために、Ingestion APIを通じての変更を加えた元のコンテンツを必ず更新することを推奨します。この同期により、今後のクロールでも変更が維持されます。

インジェスションAPIを使って文書を部分的に更新するには、[部分更新ドキュメント](https://doc.sitecore.com/search/ja/developers/search-developer-guide/using-the-ingestion-api-to-add-content-to-an-index.html#UUID-1c8015c3-4068-9441-f0bd-bdea5b1d7821_section-idm1823354355957710 "Using the Ingestion API")エンドポイントにPATCH呼び出しを行います。

このメソッドのデータモデルおよびオブジェクトおよびキーの説明については [、Ingestion API参照](https://doc.sitecore.com/search/en/developers/ingestion-api/index.html)を参照してください。 [ベースURL](https://doc.sitecore.com/search/ja/developers/search-developer-guide/the-sitecore-search-interface/the-api-access-tab.html "The API Access tab")はSearchの**Developer Resources**セクションで確認できます。

> !注PUT (update)メソッドとPATCH (部分的な更新)メソッドは異なります。Sitecore Searchに渡した値ですべてのフィールドを置き換え、パスしなかったフィールドを削除したいときはPUT (update)を使いましょう。Searchにパスしたフィールドを置き換え、他のフィールドをそのままにしたい場合にはPATCHを使います。
> 
> 例えば、*タイトル*、*説明*、*image\_URL*フィールドを含むインデックスドキュメントが存在します。*タイトル*と*説明*フィールドのみで*PUT*コールを通過した場合、Searchは*タイトルと**説明*フィールドの更新と*image\_URL*フィールドの削除の2つを前提としています。*タイトルと**説明*フィールドのみのPATCHコールを通過した場合、Searchこれらのフィールドを更新し、他のフィールドは変更しません。

1つ、一部、またはすべてのロケナルで文書を部分的に更新または削除できます。複数のロケージで文書を更新または削除するには、リクエストURLでアンパサンド(&)で区切られたロカレを渡します。例えば、英語(米国)および日本語(日本)のローカレッジで文書を部分的に更新または削除するには、locale=en\_us&locale=ja\_jpを使用します。すべてのロケージを部分的に更新または削除するには、locale=allをパスしてください。

複数のローカのインデックス文書は同じインデックス文書IDを共有するため、複数のローカを部分的に更新または削除できます。これにより、ユーザーは重複結果を目にせず、自分のロケ地に関連するコンテンツだけを見ることができます。これはクローラーソースを設定したり、Ingestion APIでドキュメントを作成したりするときに設定します。

例えば、2つのロケーションにあるインデックスドキュメントの*image\_url*属性を更新したい場合です。

以下はcURL呼び出しPATCH例です:

curl --location 'https://<base-url>/domains/<domainID>/sources/<sourceID>/entities/<entity>/documents/<documentID>?locale=<locale1>&locale=<locale2>' \\
--header 'Content-Type: application/json' \\
--header 'Authorization: <api-key>' \\
--data '{
 "document": {
 "id": "test\_id\_123",
 "fields": {
 "image\_url": "www.newimageURL.com"
 }
 }
}' \\
-X PATCH

申請が成功した場合、以下の文200回答が届きます:

{
 "enqueued": true
}

回答で「 *enqueued* 」とは、Searchがこの文書をインデックスキューに追加したことを意味します。数分後には、Searchの**Content Collection**セクションで更新されたインデックス文書が表示されます。