[ 
https://issues.apache.org/jira/browse/BEAM-6168?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16720237#comment-16720237
 ] 

Etienne Chauchot commented on BEAM-6168:
----------------------------------------

There is no way to do that with ElasticsearchIO. Please note that the behavior 
consisting of writing the whole document and using one of the fields as an id 
is the behavior of the other ES connectors for spark native, flink native 
also....

The only workaround I can propose you is a maintenance task to remove the id 
field afterwards. See 
[https://stackoverflow.com/questions/29002215/remove-a-field-from-a-elasticsearch-document]
 for ex

> Allow modification of JSON value before writing to ElasticSearch
> ----------------------------------------------------------------
>
>                 Key: BEAM-6168
>                 URL: https://issues.apache.org/jira/browse/BEAM-6168
>             Project: Beam
>          Issue Type: Improvement
>          Components: io-java-elasticsearch
>            Reporter: Mark Norkin
>            Assignee: Etienne Chauchot
>            Priority: Major
>
> I have an Apache Beam streaming job which reads data from Kafka and writes to 
> ElasticSearch using ElasticSearchIO.
> The issue I'm having is that messages in Kafka already have _{{key}}_ field, 
> and using {{ElasticSearchIO.Write.withIdFn()}} I'm mapping this field to 
> document _{{_id}}_ field in ElasticSearch.
> Having a big volume of data I don't want the _{{key}}_ field to be also 
> written to ElasticSearch as a separate field and as part of _{{_source}}_.
> Is there an option/workaround that would allow doing that?



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to