По сути моя идея заключается в следующем:
- если документ не существует, создайте документ с определенным идентификатором и добавьте указанные параметры.
- если документ существует, оставьте все существующие поля как есть и добавить/обновить указанное поле.
Я я использую PHP и Elastic ClientBuilder.
У меня есть код, который правильно индексирует новый документ. Когда я попытался реализовать функцию upsert, она правильно обновила документ, но обновила указанное новое поле и удалила все уже существующие поля.
Этот код работает для вставки документа:
Этот код работает для вставки документа:
Этот код работает для вставки документа:
Этот код работает для вставки документа:
р>
Код: Выделить всё
$ID = "XYZ";
$output = array("field1" => 1, "field2" => 2);
$params = [
'index' => 'dataindex',
'id' => $ID,
'body' => $output,
];
$response = $client->index($params);
Можно ли в одном запросе вставить/обновить документ так, как мне нужно? А если нет, то как правильно.
Заранее спасибо!
Подробнее здесь: https://stackoverflow.com/questions/782 ... in-elastic