abc icon indicating copy to clipboard operation
abc copied to clipboard

[Help] How to access document metadata?

Open david-benes opened this issue 4 years ago • 1 comments

I was able to setup import from postgress via abc import to ElasticSearch 7.7. I would like to configure parent / child relationship so that I can use join queries. For this to work, http requests to Elastic must contain routing argument (requests with parent/child relationship without routing fails). This argument should contain a string that is always the same for all documents in a relation so that these documents can be stored in the same shard.

abc import does imports by sending _bulk requests to elastic. The first part of the _bulk item contains document metadata (_id, _type, ...) and the second part contains the actual document. Elastic alternatively accepts routing property in document metadata. What I haven't found is how can I access document metadata in transform function.

The transform function allows you to modify a document. Can I somehow access the document metadata and change it during import?

david-benes avatar Jun 04 '20 08:06 david-benes

Alright, it seems to be impossible to modify document metadata. The only value that propagates from data to metadata is _id that will be deleted from data before inserting to Elastic.

https://github.com/appbaseio/abc/blob/2b659e2502a4c5788254924590a18bab38c5be47/adaptor/elasticsearch/clients/v5/writer.go#L93

david-benes avatar Jun 04 '20 09:06 david-benes