Dalet Flex Query Language

The Dalet Flex Query Language enables you to carry out complex structured searches in Dalet Flex.

Syntax

In Dalet Flex, you can carry out simple text based searches by simply entering a word or phrase. You can also use the Query Language to help you carry out more complex searches. The syntax that can be used is as follows:

Operators Description
Logical Operators AND OR ! Logical operators are used to search for multiple terms simultaneously. Examples: You can search for two different terms using the OR / AND operator such as: movie OR film, movie AND comedy.
Quotes "” Quotes are used to search for an exact word or phrase. You wrap the word or phrase in quotation marks. Example: description="city”.
Tilde ~ The tilde character (~) supports a “contains” search. This uses phrase matching to search in elastic search. For example, the search query ‘q=description~"live at midnight”’ returns all values that include the exact phrase “live at midnight”.
Comparison Operators >= <= < > Equal or greater, equal or lesser, lesser and greater operators are supported.
Boosting ^ You can boost a term using a caret (cursor) symbol. Example: description^5=city. In this example all the assets which have the word city in the description field will be more relevant in the search.
Brackets () Example: description=(European City) This searches the for the specific terms “European” and “City” within any description fields.
Free text search This is when you enter a word or phrase without applying any of the above syntax. Example: you could simply search work for the word city.
Sorting SORT BY ASC/DESC Enables you to sort by a given field. This includes sorting in ascending and descending order. If you do not specify an order, it will sort in ascending by default.

Dates

When searching date fields, the date should be written in the format yyyy-MM-dd HH:mm:ss or yyyy-MM-dd surrounded by double quotes.

lastModified="2017-06-22 10:24:05"

Exact matches

Putting quotes around the search term forces a full exact match (i.e. the entire field value).

name="film from partner x"

Boosting

You can boost results by using the carat character, which boosts any matching objects in the results. For example, in the example below you would get all objects whose name contains “film from partner” or is an image asset, but the image asset objects will appear higher in the search results.

name~"film from partner" OR objectType.name^2=image-asset

Empty matching

You can search on example values using NUll.

title=NULL

Metadata field matching

Searching on the name of a metadata field will match objects referencing any metadata definition with a field of that name.

e.g. If 2 metadata definitions exist, both with a field called “string-field”, the FQLstring-field=somevalue would match objects using either of those definitions.

There is currently no way to search on a duplicate field name within a single metadata definition.

Examples

Example Notes
New All objects that have “New” in any field
assetOrigin=New All assets with an origin of “New”
assetOrigin=New AND objectType.name=media-asset All media assets with an origin of “New”
created > "2019-08-22" Any object created after 22nd August 2019
!ownerId=5 Any object not owned by user with ID 5
(name~film OR name~placeholder) AND objectType.name=media-asset SORT BY created DESC Any media assets whose name contains “film” or “placeholder”, ordered in descending created date order