Search Operators

Search operators require a single value.

The valid operators are shown in the following table.

Operator Description Value
EQ Equal to value. If value contains any unescaped wildcard symbols ('_' or '?' for single character, '%' or '*' for anything - any of which can be escaped by prefixing with '\'), this will result in a 'like' comparison. For example:
  • apple = "apple"
  • banana\% = "banana%"
  • cherry% = like cherry%
  • damson\*? = like damson\*?
1
NEQ Not equal to value. 1
GT Greater than value. 1
GTE Greater than or equal to value. 1
LT Lower than value. 1
LTE Lower than or equal to value. 1
IN Equal to one of the value. 1+
NOT_IN Not equal to any of the value. 1+
BETWEEN Between value#1 and value#2 (inclusive). 2
NOT_BETWEEN Not between value#1 and value#2 (inclusive). 2
NULL Object reference is null. 0
NOT_NULL Object reference is not null. 0
TYPE_OF Object referenced is of a particular type (where value is fully qualified class name) or a sub-type of that type. 1

The operator must be appropriate to the attribute data type, as described in the following table.

BOM Type EQ,NEQ, IN, NOT-IN LT, LTE, GT, GTE, BETWEEN, NOT-BETWEEN NULL,NOT-NULL TYPE_OF
ATTR_TEXT
ATTR_ID
ATTR_URI Y   Y  
ATTR_DATE
ATTR_TIME
ATTR_DATETIME
ATTR_DATETIMETZ Y Y Y  
ATTR_DURATION Y Y Y  
ATTR_INTEGER
ATTR_DECIMAL Y Y Y  
ATTR_BOOLEAN Y   Y  
ATTR_ENUM Y   Y  
OBJECT (another class)     Y Y

If an attribute is multiplicity-many, then the following operators can be used.

Search Operator Description Values Required
SIZE_EQ Number of values equal to value 1
SIZE_NEQ Number of values not equal to value 1
SIZE_GT Number of values greater than value 1
SIZE_GTE Number of values greater than or equal to value 1
SIZE_LT Number of values less than value 1
SIZE_LTE Number of values less than or equal to value 1