ARLAS Tagging API
This API is available for tagging hits in ARLAS collections.
By tagging, we mean here adding a value to a field that is of type Array.
The field to tag must be declared in the ARLAS collection.
There are two ways to select hits to be tagged:
- if no
propagationparameter is specified, the value is added to the field of all the hits of a collection matching theSearchpart of the TagRequest. If noSearchis provided, then the whole collection is tagged. - if a
propagationparameter is specified, then a first selection is made from theSearchpart in order to list all the uniquepropagation.fieldvalues. All hits of the collection matching each uniquepropagation.fieldvalue (optionally limited by thepropagation.filterparameter) are then tagged with the tag field.
The collection name, the path to the field carrying the tag and the tag values must be provided in order to tag a collection.
If needed a Search can be provided to specify the hits to be tagged:
curl -X POST \
--header 'Accept: application/json;charset=utf-8' \
-d '{ "search": {}, "tag": { "path": "plant.color","value": "pink"}, "propagation": { "field": "id", "filter": {} }, "label": "pinktag" }' \
'http://<arlas-tagger-host>:<arlas-tagger-port>/arlas/write/geodata/_tag?pretty=false'
In order to remove a tag, meaning a value from the field, the same tag request is sent, but on the untag endpoint:
curl -X POST \
--header 'Accept: application/json;charset=utf-8' \
-d '{ "search": {}, "tag": { "path": "plant.color","value": "pink"}}' \
'http://<arlas-tagger-host>:<arlas-tagger-port>/arlas/write/geodata/_untag?pretty=false'
To remove all the tags for a given field, simply omit the value of the tag:
curl -X POST \
--header 'Accept: application/json;charset=utf-8' \
-d '{ "search": {}, "tag": { "path": "plant.color"}}' \
'http://<arlas-tagger-host>:<arlas-tagger-port>/arlas/write/geodata/_untag?pretty=false'
Tagging is done asynchronously, through Kafka logs. The response from the first (un)tag request gives an id that can be used to request the status of the tagging process itself.
curl -X GET \
--header 'Accept: application/json;charset=utf-8' \
'http://<arlas-tagger-host>:<arlas-tagger-port>/arlas/status/geodata/_tag?id=...'
Tagging can be replayed. The Kafka reference log is read again from the given offset and all tagging requests are executed again in the same order than initially received.
curl -X GET \
--header 'Accept: application/json;charset=utf-8' \
'http://<arlas-tagger-host>:<arlas-tagger-port>/arlas/write/geodata/_tagreplay?offset=...'
Warning
Only taggable fields can be tagged. In order to be taggable, a field must have its path provided in the CollectionReference, more specifically in params.taggable_fields.