Операция Upsert в ElasticSearch с использованием коннектора Apache Beam - PullRequest
0 голосов
/ 27 марта 2019

Я пытаюсь загрузить данные в поиск 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));

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...