Search util 2 allows the definition of search filters via configuration (custom.properties). Those filters are used in other plugins to define scopes.
<=
and >=
instead of <
and >
, because <
has to be modelled as <= and not =
(analogous for >
).\
is also the escape character for *.properties
files and therefore needs to be escaped again. E.g. He"ll\o
as string would become "He\"ll\\o"
and because it is in a *.properties
file it becomes "He\\"ll\\\\o"
.A filter expression consists of one or more filters which are connected by logical operators. Parentheses are supported.
A filter has always the following structure: <filter><comparator><values>
. E.g. assetType=11000
The following logical operators are supported:
and
or &
or
or |
not
or !
Parantheses are supported.
=
or ==
!=
or <>
<=
>=
<
>
^=
$=
%=
"
, e.g. "Hello world!"
. If the string itself contains a quote it has to be escaped with a backslash \"
. Backslashes have to be escaped too \\
. \n
is converted to a new line character and \t
to a tab.true
or false
(case-insensitive).-2^63
to 2^63-1
-2^31
to 2^31-1
-3.987
or 55
, scientific notation (e.g. 7.65e4
) is not supported.yyyy-MM-dd
or yyyy-MM-dd hh:mm:ss
(e.g. "2023-07-19"
) or the special literal now
. Note that you can do math with this, e.g. now - 30
to define a relative date for 30 days ago.3.141, 2.718, -77, 3.3 + 4.4
.22, 33
would mean 22 <= x <= 33
.empty
or null
(case-insensitive).+
): Applicable to numeric types, string (concatenation) and date (add number of days). Also unary for numeric types.-
): Applicable to numeric types and date (subtract number of days). Also unary for numeric types.*
): Applicable to numeric types./
): Applicable to numeric types (long and integer are rounded down, e.g. 4 / 3 = 1).^
): Applicable to numeric types.The numeric types are long, integer and double.
Parantheses are supported.
Synonyms:
assetTypes
assetType = empty
: Assets which don't have an asset type set.assetType != empty
: Assets which have an asset type set.assetType = <list of long>
: Assets which have one of the specified asset type ids.assetType != <list of long>
: Assets which don't have one of the specified asset type idsSynonyms: -
assetIds = <list of long>
: Assets with one of the specified asset ids.assetIds != <list of long>
: Assets without one of the specified asset ids.Note the s at the end, which sets this filter apart from the following one.
Synonyms: -
assetId = <long>
: The asset with the specified asset id.assetId != <long>
: Assets without the specified asset id.assetId = <range of long>
: Assets with an asset id within the specified range (inclusive).assetId != <range of long>
: Assets with an asset id not in the specified range (inclusive).assetId <= <long>
: Assets with an asset id less or equal to the specified one.assetId >= <long>
: Assets with an asset id greater or equal to the specified one.assetId < <long>
: Assets with an asset id less than the specified one.assetId > <long>
: Assets with an asset id greater than the specified one.Synonyms:
nodeTypes
nodeType = <list of long>
: Assets linked to at least one of the nodes with the specified node type ids.nodeType != <list of long>
: Assets linked to none of the nodes with the specified node type ids.Synonyms:
nodes
node = <list of long>
: Assets linked to all of the nodes with the specified node ids.node != <list of long>
: Assets not linked to all of the nodes with the specified node ids.Synonyms:
nodesRecursive
nodeRecursive = <list of long>
: Assets linked to all of the nodes with the specified node ids or one of their children.nodeRecursive != <list of long>
: Assets not linked to all of the nodes with specified node ids or one of their children.Synonyms:
anyNodes
anyNode = <list of long>
: Assets linked to at least one of the nodes with the specified node ids.anyNode != <list of long>
: Assets linked to none of the nodes with the specified node ids.Synonyms:
anyNodesRecursive
anyNodeRecursive = <list of long>
: Assets linked to at least one of the nodes with the specified node ids or one of their children.anyNodeRecursive != <list of long>
: Assets linked to none of the nodes with the specified node ids or one of their children.Synonyms:
nodeNames
, since: 1.47
Note: This executes a sub-query in order to retrieve all nodes matching the provided term, whereafter a nodeAny
is performed on those. Requires a NodeTypeId and a Locale because the SDK does.
nodeName = <NodeTypeId>,<Locale>,<Searchterm>
Assets linked to at least one node whose name equals the search termnodeName %= <NodeTypeId>,<Locale>,<Searchterm>
Assets linked to at least one node whose name contains the search termnodeName ^= <NodeTypeId>,<Locale>,<Searchterm>
Assets linked to at least one node whose name starts with the search termnodeName $= <NodeTypeId>,<Locale>,<Searchterm>
Assets linked to at least one node whose name ends with the search termSynonyms:
nodeNamesRecursive
, since: 1.47
Note: This executes a sub-query in order to retrieve all nodes matching the provided term, whereafter a nodeAnyRecursive
is performed on those. Requires a NodeTypeId and a Locale because the SDK does.
nodeNameRecursive = <NodeTypeId>,<Locale>,<Searchterm>
Assets linked below at least one node whose name equals the search termnodeNameRecursive %= <NodeTypeId>,<Locale>,<Searchterm>
Assets linked below at least one node whose name contains the search termnodeNameRecursive ^= <NodeTypeId>,<Locale>,<Searchterm>
Assets linked below at least one node whose name starts with the search termnodeNameRecursive $= <NodeTypeId>,<Locale>,<Searchterm>
Assets linked below at least one node whose name ends with the search termSynonyms:
creators
creator = <list of long>
: Assets created by one of the users with the specified user ids.creator = <list of long>
: Assets created by none of the users with the specified user ids.Synonyms:
modifiers
modifier = <list of long>
: Assets modified by one of the users with the specified user ids.modifier = <list of long>
: Assets modified by none of the users with the specified user ids.Synonyms:
creation
created = <date>
: Assets created on the specified date.created != <date>
: Assets not created on the specified date.created = <range of date>
: Assets created between the specified dates.created != <range of date>
: Assets not created between the specified dates.created <= <date>
: Assets created before or on the specified date.created >= <date>
: Assets created after or on the specified date.created < <date>
: Assets created before the specified date.created > <date>
: Assets created after the specified date.Synonyms:
modification
modified = <date>
: Assets modified on the specified date.modified != <date>
: Assets not modified on the specified date.modified = <range of date>
: Assets modified between the specified dates.modified != <range of date>
: Assets not modified between the specified dates.modified <= <date>
: Assets modified before or on the specified date.modified >= <date>
: Assets modified after or on the specified date.modified < <date>
: Assets modified before the specified date.modified > <date>
: Assets modified after the specified date.Synonyms:
conversionErrors
,error
,errors
conversionError = true
or conversionError != false
: Assets with conversion errors.conversionError = false
or conversionError != true
: Assets without conversion errors.Synonyms:
locked
lock = true
or lock != false
: Locked assets.lock = false
or lock != true
: Assets which aren't locked.Synonyms:
availability
available = <boolean>
: Assets which are available.available != <boolean>
: Assets which aren't available.available = <date range>
: Assets which are available between the specified dates.available != <date range>
: Assets which aren't available between the specified dates.Synonyms:
expiration
expires = <date range>
: Assets which expire between the specified dates.expires != <date range>
: Assets which don't expire between the specified dates.expires < <date>
: Assets expiring before the specified date.expires > <date>
: Assets expiring after the specified date.Synonyms:
name
assetName = <string>
: Assets with the specified name.assetName != <string>
: Assets with a different name than the specified one.assetName ^= <string>
: Assets with a name starting with the specified string.assetName $= <string>
: Assets with a name ending with the specified string.assetName %= <string>
: Assets with a name containing the specified string.Synonyms:
originalName
,original
originalFilename = <string>
: Assets with the specified original filename.originalFilename != <string>
: Assets with a different original filename than the specified one.originalFilename ^= <string>
: Assets with an original filename starting with the specified string.originalFilename $= <string>
: Assets with an original filename ending with the specified string.originalFilename %= <string>
: Assets with an original filename containing the specified string.Synonyms:
fileExtensions
,extension
,extensions
fileExtension = empty
: Assets with no file extension.fileExtension != empty
: Assets with a file extension.fileExtension = <list of string>
: Assets with one of the specified file extensions.fileExtension != <list of string>
: Assets with none of the specified file extensions.fileExtension ^= <list of string>
: Assets with a file extension starting with one of the specified strings.fileExtension $= <list of string>
: Assets with a file extension ending with one of the specified strings.fileExtension %= <list of string>
: Assets with a file extension containing one of the specified strings.Synonyms:
text
fullText = <string>
: Assets with an information field or name matching the specified string.fullText != <string>
: Assets with no information field or name matching the specified string.fullText ^= <string>
: Assets with an information field or name starting with the specified string.fullText $= <string>
: Assets with an information field or name ending with the specified string.fullText %= <string>
: Assets with an information field or name containing the specified string.Synonyms:
size
fileSize = <long>
: Assets with a file size equal to the specified one.fileSize != <long>
: Assets with a file size not equal to the specified one.fileSize = <range of long>
: Assets with a file size within the specified range.fileSize != <range of long>
: Assets with a file size not between the specified range.fileSize <= <long>
: Assets with a file size less or equal to the specified one.fileSize >= <long>
: Assets with a file size greater or equal to the specified one.fileSize < <long>
: Assets with a file size less than the specified one.fileSize > <long>
: Assets with a file size greater than the specified one.Synonyms:
fileCategories
,category
,categories
Available categories: image
, audio
, document
, video
, text
, unknown
, 3d
(only newer versions). Theoretically any known category is supported (there is an enumeration and as long as the value in upper case is in that enumeration it will work).
fileCategory = <list of category>
: Assets with one of the specified file categories.fileCategory != <list of category>
: Assets with none of the specified file categories.Synonyms:
informationField_<long>
,infoField<long>
,infoField_<long>
,info<long>
,info_<long>
,field<long>
,field_<long>
Filter by the information field with the specified information field id (e.g. informationField33
, info_33
or field33
would filter by the information field with the id 33). The filter options depend on the information field kind.
field_<long> = true
or field_<long> != false
: Assets where the specified checkbox is checked.field_<long> = false
or field_<long> != true
: Assets where the specified checkbox is not checked.field_<long> = empty
: Assets where the specified field is empty.field_<long> != empty
: Assets where the specified field is not empty.field_<long> = <number>
: Assets where the specified field has the given number. field_<long> != <number>
: Assets where the specified field doesn't have the given number.field_<long> = <number range>
: Assets where the specified field has a number in the given range.field_<long> != <number range>
: Assets where the specified field has a number outside of the given range.field_<long> <= <number>
: Assets where the specified field has a number less or equal to the given one.field_<long> >= <number>
: Assets where the specified field has a number greater or equal to the given one.field_<long> < <number>
: Assets where the specified field has a number less than the given one.field_<long> > <number>
: Assets where the specified field has a number greater than the given one.field_<long> = empty
: Assets where the specified field is empty.field_<long> != empty
: Assets where the specified field is not empty.field_<long> = <string>
: Assets where the specified field has the given string.field_<long> != <string>
: Assets where the specified field doesn't have the given string.field_<long> ^= <string>
: Assets where the specified field starts with the given string.field_<long> $= <string>
: Assets where the specified field ends with the given string.field_<long> %= <string>
: Assets where the specified field contains the given string.field_<long> = <locale>, empty
: Assets where the specified field is empty for the given locale.field_<long> != <locale>, empty
: Assets where the specified field isn't empty for the given locale.field_<long> = <locale>, <string>
: Assets where the specified field has given string for the given locale.field_<long> != <locale>, <string>
: Assets where the specified field doesn't have the given string for the given locale.field_<long> ^= <locale>, <string>
: Assets where the specified field starts with the given string for the given locale.field_<long> $= <locale>, <string>
: Assets where the specified field ends with the given string for the given locale.field_<long> %= <locale>, <string>
: Assets where the specified field contains the given string for the given locale.field_<long> = empty
: Assets where the specified field is empty.field_<long> != empty
: Assets where the specified field is not empty.field_<long> = <integer>
: Assets where the specified field has the given value.field_<long> != <integer>
: Assets where the specified field doesn't have the given value.field_<long> = empty
: Assets where the specified field is empty.field_<long> != empty
: Assets where the specified field is not empty.field_<long> = <long>
: Assets where the specified field has the node with the given node id.field_<long> != <long>
: Assets where the specified field doesn't have the node with the given node id.field_<long> = <long>, true
: Assets where the specified field has the node with the given node id or one of its children.field_<long> != <long>, true
: Assets where the specified field doesn't have the node with the given node id or one of its children.field_<long> = <list of long>
: Assets where the specified field contains at least one of the given nodes (since celum-utils 1.39.17-6.4).field_<long> != <list of long>
: Assets where the specified field contains none of the given nodes (since celum-utils 1.39.17-6.4).field_<long> = empty
: Assets where the specified field is empty.field_<long> != empty
: Assets where the specified field is not empty.field_<long> = <date>
: Assets where the specified field has the given date.field_<long> != <date>
: Assets where the specified field doesn't have the given date.field_<long> = <date range>
: Assets where the specified field has a date in the given range.field_<long> != <date range>
: Assets where the specified field doesn't have a date in the given range.field_<long> <= <date>
: Assets where the specified field has a date before or equal to the given one.field_<long> >= <date>
: Assets where the specified field has a date after or equal to the given one.field_<long> < <date>
: Assets where the specified field has a date before the given one.field_<long> > <date>
: Assets where the specified field has a date after than the given one. Synonyms:
file_<name>
,property_<name>
Filter by the specified file property.
Known file properties: width
, height
, colorspace
, profile
, dpi
, codec
, aspect_ratio
, pages
, vector
, raster
, svg_layer_names
, duration
, scan_type
, frame_rate
, standard
, audio_channel
, audio_bit_rate
, audio_sample_rate
, audio_artist
, audio_track_title
, audio_album_title
, audio_track_number
, audio_year
, audio_genre
property_<name> = true
or property_<name> != false
: Assets where the specified file property is true.property_<name> = false
or property_<name> != true
: Assets where the specified file property is false.property_<name> = empty
: Assets where the specified file property is empty.property_<name> != empty
: Assets where the specified file property is not empty.property_<name> = <string>
: Assets where the specified file property equals the given string.property_<name> != <string>
: Assets where the specified file property doesn't equal the given string.property_<name> ^= <string>
: Assets where the specified file property starts with the given string.property_<name> $= <string>
: Assets where the specified file property ends with the given string.property_<name> %= <string>
: Assets where the specified file property contains the given string.property_<name> = empty
: Assets where the specified file property is empty.property_<name> != empty
: Assets where the specified file property is not empty.property_<name> = <number>
: Assets where the specified file property has the given number.property_<name> != <number>
: Assets where the specified file property doesn't have the given number.property_<name> = <number range>
: Assets where the specified file property has a number in the given range.property_<name> != <number range>
: Assets where the specified file property has a number outside of the given range.property_<name> <= <number>
: Assets where the specified file property has a number less or equal to the given one.property_<name> >= <number>
: Assets where the specified file property has a number greater or equal to the given one.property_<name> < <number>
: Assets where the specified file property has a number less than the given one.property_<name> > <number>
: Assets where the specified file property has a number greater than the given one.property_<name> = empty
: Assets where the specified file property is empty.property_<name> != empty
: Assets where the specified file property is not empty.property_<name> = <date>
: Assets where the specified file property has the given date.property_<name> != <date>
: Assets where the specified file property doesn't have the given date.property_<name> = <date range>
: Assets where the specified file property has a date in the given range.property_<name> != <date range>
: Assets where the specified file property doesn't have a date in the given range.property_<name> <= <date>
: Assets where the specified file property has a date before or equal to the given one.property_<name> >= <date>
: Assets where the specified file property has a date after or equal to the given one.property_<name> < <date>
: Assets where the specified file property has a date before the given one.property_<name> > <date>
: Assets where the specified file property has a date after than the given one.Assets linked to (any subnode of) Node 1337 that has a copyright date (date-field 42) set in the future, or does not require a copyright (checkbox 41):
nodeRecursive = 1337 & (infoField_42 >= now | infoField_41 = false)
Assets linked to (any subnode of) Node 1337 that has a copyright date (date-field 42) in the past
nodeRecursive = 1337 & infoField_42 <= now
Search util 2 | CELUM (min. version) |
---|---|
1.0.0+ | 6.4, tested up to 6.8 |
1.1.0 (Celum Utils 1.39.19) | 6.4, tested up to 6.8 |
1.2.0 (Celum Utils 1.46.3-6.4) | 6.4 tested up to 6.8 |
Released 2020-11-11
Initial version.
Released 2021-11-26
File properties added.
Released 2022-06-07
File categories: bug fix and dynamic