Examples: query, "exact match", wildcard*, wild?ard, wild*rd
Fuzzy search: cake~ (finds cakes, bake)
Term boost: "red velvet"^4, chocolate^2
Field grouping: tags:(+work -"fun-stuff")
Escaping: Escape characters +-&|!(){}[]^"~*?:\ with \, e.g. \+
Range search: properties.timestamp:[1587729413488 TO *] (inclusive), properties.title:{A TO Z}(excluding A and Z)
Combinations: chocolate AND vanilla, chocolate OR vanilla, (chocolate OR vanilla) NOT "vanilla pudding"
Field search: properties.title:"The Title" AND text
Answered
Hi There!

Hi there! šŸ™‚
Iā€™m wondering whether it is possible to:

  • set the User Properties of a dataset when creating a Dataset with clearml.Dataset.create()
  • get a Dataset based on a certain User Property
  • get the latest Dataset with a certain tag (e.g. get the most recent Dataset with the "foo" tag)
  • in the web interface, view the metadata I set for a Dataset, and get a Dataset based on certain metadataThank you so much!! šŸ™‚
  
  
Posted one year ago
Votes Newest

Answers 4


Would it also be possible to query based on multiple user properties / tags? (So for example, only matching datasets that have key_1="value_1" and key_2="value_2" properties / "value_1" and "value_2" tags)
If I set a list of tags for query_tasks() , all dataset Ids with any of the tags are matched, not with all of the tags (contrary to what is stated in the docstring of query_task ).

  
  
Posted one year ago

Would it also be possible to query based on

multiple

user properties

multiple key/value I think are currently not that easy to query,
but multiple tags are quite easy to do

tags=["__$all", "tag1", "tag2],
  
  
Posted one year ago

Perfect, this seems to do what I was looking for, thanks a lot! šŸ™‚

  
  
Posted one year ago

Hi @<1523704152130064384:profile|SmallGiraffe94>
Yes it is possible!

set the User Properties of a dataset when creating a Dataset with

A bit hackish but should work.

dataset = Dataset.create(dataset_project="project", dataset_name="name")
dataset._task.set_user_properties(key="value")

dataset_ids = Task.query_tasks(
    project_name=["project/.datasets/name"],
    task_filter=dict(
        type=[str(Task.TaskTypes.data_processing)],
        exact_match_regex_flag=False,
        search_hidden=True,
        _allow_extra_fields_=True,
        _all_=dict(fields=['hyperparams.properties.key.value'], pattern="^value$"),
        order_by=['-created'],
    )
)
dataset.get(dataset_id=dataset_ids[0])

Maybe this should be incorporated into the top level interface? What is the use case?
Would tags make more sense ?

  
  
Posted one year ago