Добавление партий в хранилище эластичного поиска с массовым API
У меня есть огромный набор документов с тем же индексом и тем же типом, но явно разными идентификаторами. Я хочу либо обновить существующие, либо вставить новые в пакетном режиме. Как я могу добиться этого с помощью API массовой индексации? Я хочу сделать что-то вроде ниже, но это выдает ошибку. По сути, я хочу сохранить несколько документов в пакетах, которые имеют одинаковый индекс и один и тот же тип.
curl -s -H "Content-Type: application/json" -XPOST localhost:9200/_bulk -d'
{ "index": {"_type": "sometype", "_index": "someindex"}}
{ "_id": "existing_id", "field1": "test1"}
{ "_id": "existing_id2", "field2": "test2"}
'
1 ответ
Решение
Вам нужно сделать это так:
curl -s -H "Content-Type: application/json" -XPOST localhost:9200/someindex/sometype/_bulk -d'
{ "index": {"_id": "existing_id"}}
{ "field1": "test1"}
{ "index": {"_id": "existing_id2"}}
{ "field2": "test2"}
'
Поскольку все документы имеют одинаковый индекс / тип, переместите его на URL и укажите только _id
для каждого документа, который вы хотите обновить в вашей группе.