Updating a document
Use the PUT method on the base URL of the Sitecore Search Ingestion API to replace all attribute values in an index document.
When an administrator recrawls a pull source, either manually or through scheduled crawls, Search updates all index documents with the latest data from your original content. This action overwrites any updates you made through Ingestion API if they aren't also applied to the original content. To prevent this, we recommend that you always update the original content with changes made through the Ingestion API. This synchronization ensures that your modifications are maintained in future crawls.
To use the Ingestion API to update a document, make a PUT call to the Partial Update Document endpoint.
For the data model of this method and a description of objects and keys, see the Ingestion API reference. You can view your base URL in the Developer Resources section of Search.
For example, you want to update the title and add a new attribute, image_url, to an existing index document in one locale. To do this, make a PUT call to https://<base-url>/domains/<domainID>/sources/<sourceID>/entities/<entity>/documents/<documentID>?locale=<locale>
Here's a sample PUT cURL call:
curl --location 'https://<base-url>/domains/<domainID>/sources/<sourceID>/entities/<entity>/documents/<documentID>?locale=<locale>' \
--header 'Content-Type: application/json' \
--header 'Authorization: <api-key>' \
--data '{
"document": {
"id": "test_id_123",
"fields": {
"title": "updated title"
"description": "This is an awesome blog",
"type": "blog",
"url": "www.someURL.com"
"image_url": "www.someimage.com"
}
}
}' \
-X PUTIf your request is successful, you get a 200 response with this body:
{
"enqueued": true
}In the response, enqueued means that Search has added this document to its indexing queue. After indexing has completed, you can see the updated index document in the Content Collection section of Search.