Я пытаюсь загрузить данные в поиск Elastic с помощью коннектора Apache Beam.Я смог успешно проиндексировать документ.
Я знаю, что API-интерфейс Elastic update позволяет запускать сценарии и операции вставки для определенного indexId.Я пытаюсь сделать то же самое с помощью гибкого поискового соединителя Apache Beam и получаю сообщение об ошибке, как показано ниже:
org.apache.beam.sdk.Pipeline $ PipelineExecutionException: java.io.IOException: ошибка записи в Elasticsearch, некоторые элементы могутне вставляется:
Ниже приведен документ, который я передал в Соединитель эластичного поиска.{"keyId": "someName", "Indexname": "fname", "Type": "emp", "script": {"source": "ctx._source.keyVal.add (params.keyVal)", "lang ":" безболезненно "," params ": {" keyVal ":" blue4 "}}," upsert ": {" keyId ":" jitendra2 "," Indexname ":" fname "," Type ":" emp ", "keyVal": ["blue"]}}
Нужно ли что-нибудь добавить, чтобы соединитель знал, что это операция обновления?
Мне удалось опубликовать этот json изпочтальон успешно.
.apply («Запись в индекс Elasticsearch», ElasticsearchIO.write () .withConnectionConfiguration (connection) .withIndexFn (new ExtractKeyFn («Indexname»)) .withIdFn (new ExtractKeyFn («keyId»))) .withTypeFn.(новый ExtractKeyFn ("Тип")) .withMaxBatchSize (100) .withUsePartialUpdate (true));