В этой части серии статей я покажу вам, как можно легко заменить документ в индексе.
Фактически, способ сделать это идентичен тому, как вы добавляете документ в индекс. Поэтому все, что вам нужно сделать, это отправить запрос PUT с документом в формате JSON.
1 2 3 4 5 6 7 8 9 10 11 12 | curl -XPUT http://127.0.0.1:9200/ecommerce/product/1001 -d ' { "name": "Zend Framework 2: от новичка к профессионалу", "price": 50.00, "description": "Изучите Zend Framework 2 всего за несколько часов!", "status": "active", "quantity": 1, "categories": [{ "name": "Software" }], "tags": ["zend framework", "zf2", "php", "programming"] }' |
Единственное, что было изменено в документе по сравнению с оригиналом, - это цена.
Elasticsearch заменит любой существующий документ с идентификатором 1001 данными, которые мы указали. Если документа с таким ID еще не существует, он будет добавлен. Это означает, что вам не нужно беспокоиться о том, существует ли уже документ в индексе, что избавляет вас от необходимости выполнять поиск и затем обновлять документ. При желании вы можете открыть Kibana и проверить, что цена была обновлена в документе.
Как видите, замена документов в Elasticsearch чрезвычайно проста.