Adaptive Search Queries: Query Expression
Adaptive Search supports multiple operators that adhere to SCIM standards. You can define the query expression as shown below:
q: "<the query expression>"
The following operators are supported for building a query expression:
Operator | Attribute Type | JSON Operand Type | Description | JSON Sample | Description | Exceptions |
---|---|---|---|---|---|---|
AllOfTheWords |
Text/Entity |
String |
All of the words |
{"op": "$all" , "attribute": "PartyUniqueName", "value": "Technologies United"} |
If the attribute value (or the entity's all field) includes all of keywords in array of values specified in the operand the there is a match. |
if the attribute is not a text attribute or an entity |
AnyOfTheWords |
Text/Entity |
String |
Any of the words |
q: {op: "$any" , attribute: "PartyUniqueName", value: ["pinnacle", "united"]} |
If the attribute value (or the entity's all field) includes anyof keywords in array of values specified in the operand the there is a match. |
if the attribute is not a text attribute or an entity |
NoneOfTheWords |
Text/Entity |
String |
None of the words |
q: {op: "$none" , attribute: "PartyUniqueName", value: ["pinnacle", "united"]} |
If the (or the entity's all field) attribute value includes noneof keywords in array of values specified in the operand the there is a match. |
if the attribute is not a text attribute or an entity |
Equals |
Boolean, Currency, Date, Time, Timestamp, Number, String, Text |
Boolean, Date, Time, Timestamp, Number, String, Text |
Equals |
q: {op: "$eq" , attribute: "PartyUniqueName", value: "(503) Holdings I, LLC (Aberdeen, US)"} |
The attribute and operand must be identical for a match. |
If operand is not combatible with the attribute type |
NotEquals |
Boolean, Currency, Date, Time, Timestamp, Number, String, Text |
Boolean, Date, Time, Timestamp, Number, String |
Not equals |
q: {op: "$ne" , attribute: "PartyUniqueName", value: "(503) Holdings I, LLC (Aberdeen, US)"} |
The attribute value and the operand must not be identical for a match. |
if the operandis not combatible with the attribute type |
Exists |
Boolean, Currency, Enum, Date, Time, Timestamp, Number, String, Text |
none |
Exists |
q: {op: "$pr" , attribute: "PrimaryAddress"} |
If the attribute has a non-empty or non-null value, or if it contains a non-empty node for complex attributes, there is a match. |
if the operand is not combatible with the attribute type |
NotExists |
Boolean, Currency, Enum, Date, Time, Timestamp, Number, String, Text |
none |
Not exists |
q: {op: "$npr" , attribute: "PrimaryAddress"} |
If the attribute value is null |
if the operand is not combatible with the attribute type |
FuzzyMatch |
Text |
String |
Fuzzy match |
q: {op: "$fm" , attribute: "PartyUniqueName", value: "Holdings"} |
Does a fuzzy match, requires atleast four characters |
if the attribute is not a text field |
GreaterThan |
Currency,Date, Time, Timestamp, Number |
Date, Time, Timestamp, Number |
Greater than |
q: {op: "$gt" , attribute: "Revenue", value: 1500} |
If the attribute value is greater than the operand, there is a match. |
if the attribute type is not Currency,Date, Time, Timestamp, or Number |
GreaterThanOrEqual |
Currency, Date, Time, Timestamp, Number |
Date, Time, Timestamp, Number |
Greater than or equal |
q: {op: "$ge" , attribute: "Revenue", value: 1500} |
If the attribute value is greater than or equal to the operand, there is a match. |
if the attribute type is not Currency,Date, Time, Timestamp, or Number |
Less Than |
Currency, Date, Time, Timestamp, Number |
Date, Time, Timestamp, Number |
Less than |
q: {op: "$lt" , attribute: "Revenue", value: 1500} |
If the attribute value is less than the operand, there is a match. |
if the attribute type is not Currency,Date, Time, Timestamp, or Number |
LessThanOrEqual |
Currency, Date, Time, Timestamp, Number |
Date, Time, Timestamp, Number |
Less than or equal |
q: {op: "$le" , attribute: "Revenue", value: 1500} |
If the attribute value is less than or equal to the operand, there is a match. |
if the attribute type is not Currency,Date, Time, Timestamp, or Number |
In |
Currency, Date, Enum, Time, Timestamp, Number, String, Text |
An array of values compatible the attribute type |
In |
q: {op: "$in" , attribute: "PartyUniqueName", value: ["pinnacle", "united"]} |
If the attribute value is equal to any of the specificed values in the array of values |
if the operand is not an array of values combatible with the attribute type |
NotIn |
Currency, Date, Enum, Time, Timestamp, Number, String, Textt |
An array of values compatible the attribute type |
Not in |
q: {op: "$notin" , attribute: "PartyUniqueName", value: ["pinnacle", "united"]} |
If the attribute value is equal to any of the specificed values in the array of values |
if the operand is not an array of values combatible with the attribute type |
Between |
Currency, Date, Time, Timestamp, Number |
Two operands compatible the attribute type |
(min,max) |
q: {op: "$wi" , attribute: "CreationDate", value1: "2014-09-18T19:59:38.000+0000", value2: "2017-09-18T19:59:38.000+0000"} |
if the attribute value is >= min and < max |
if the value1 is not combatible with the attribute type |
Not Between |
Currency, Date, Time, Timestamp, Number |
Two operands compatible the attribute type |
(min,max) |
q: {op: "$notwi" , attribute: "CreationDate", value1: "2014-09-18T19:59:38.000+0000", value2: "2017-09-18T19:59:38.000+0000"} |
If the attribute value is < min or >= max |
if the value1 is not combatible with the attribute type |
StartsWith |
String, Text |
String |
Starts with |
q: {op: "$sw" , attribute: "PartyUniqueName", value: "United"} |
The entire operand must be a substring of the attribute value, starting at the beginning of the attribute value. This criterion is satisfied if the two strings are identical |
if the attribute type is not String or Text |
EndsWith |
String, Text |
String |
Ends with |
q: {op: "$ew" , attribute: "PartyUniqueName", value: "United"} |
The entire operand must be a substring of the attribute value matching at the end of the attribute value. This criterion is satisfied if the two strings are identical. |
if the attribute type is not String or Text |
Contains |
String Text |
String |
Contains |
q: {co: "$co" , attribute: "PartyUniqueName", value: "Oracle"} |
The entire operand must be a substring of the attribute value for a match. |
if the attribute type is not String or Text |