Searching

You can query the catalog either through the API or the web frontend. In both cases, you query with a “query string”, which allows you to filter the results down or find artifacts of interest.

The “query string” follows a simple syntax:

  • Any plain keyword is searched as a keyword (ie, “data” finds all artifacts with “data” in the metadata)
  • Search against attributes with <attribute_name>:<attribute_value>. This will match all attributes with that name/value pair. Additionally, you may use the ==, =, !=, >, >=, < and <= operators for comparison-based searching of attribute values.
  • You may use groupings for attribute searches, such as (robot_serial > 10 and robot_serial < 40). You may use the and or or keywords inside groupings.
  • Search for specific artifact types with type:<artifact_type>. For example, type:log will find all logs.
  • Sorting by a particular column with sort:<column>, where column can be name, ingest, size, or duration.
  • Limiting the number of requests with limit:<number>.
  • Find artifacts belonging to a collection with collection:<version>
  • Use the keywords failed, successful, or running to find all artifacts with jobs in one of those states.
  • You can search for all logs that are in a time range with either creation_time or ingest_time followed by a operator (>=, >, <, <=). For example, creation_time>1729018556.
  • ‘Scheduled for Removal’ artifacts are hidden by default. Use ‘removed:show’ to see them, or ‘removed:only’ to see only artifacts scheduled for removal.

It is expected that more keywords will be added over time.

As a quick example, here is a search for all logs that failed ingest:

Failed Ingest

Here is a search for all artifacts with the ‘jeep’ keyword in them and with the attribute CATEGORY_PURPOSE matching RacerDataCollection:

Jeep Log