Helper Operators
The helper operators allow you to specify additional conditions to filter match candidates.
The Helper Operators apply additional conditions within a rule. The comparator classes you map for the rule have no bearing on the Helper Operators.
Equals Operator
Specifies that an attribute in the profile must be equal to a certain value. For
example, suppose you only want to compare addresses where State equals
TX
, or identifier type equals SSN
.
IN Operator
Specifies that an attribute in the profile must be equal to any of the values in the
defined collection. This is equivalent to logic you could create by combining Equals
and Or operators. For example, State In TX
,
CA
, AZ
And, Or Operators
Allows you to form complex boolean logic within your match group. JSON sampled to be added
NotEquals Operator
Specifies that an attribute in the profile must not be equal to a certain value. For
example, suppose you only want to compare persons outside of California. You might
specify notEquals
on the state field for the person’s address.
When to use the notEquals
operator
In cases where you wish to exclude certain segments from being used in a match, you
will typically use the notEquals
operator. See example below from a
media and entertainment use-case that prevents records of type
episode
from being part of the match candidates.
"rule": {
"and": {
"exact": [
"configuration/entityTypes/filmedContent/attributes/ContentType"
],
"notEquals": [
{
"uri": "configuration/entityTypes/filmedContent/attributes/ContentType",
"value": "episode"
}
]
}
Since the attribute, contentType
, has notEquals
applied to it, you’re essentially saying - I don’t want to consider any records that
have certain values of contentType
, specifically
episode
. Thus it would make no sense to waste computing
resources to find records based on contentType
, and add them to the
candidate pool, just to have them excluded anyway by the notEquals
operator.
KEY TAKEAWAY: Anytime you use the notEquals
operator, use the
ignoreInToken
element in your match group to suppress token
generation for the attribute referenced by the notEquals
operator.
Null Values Operator
Allows you to define values that during execution of a match rule, will be replaced
with <null>
, which prepares the attribute to be properly treated
by the ExactOrNull
and ExactOrAllNull
operators.
For example, you could configure this operator to detect NOT
SPECIFIED
as the attribute value and replace it with
<null>
. Note that the operator considers the entire value,
not individual words within the value. So in this example, it will not find
NOT
or SPECIFIED
separately and it will not
find the string NOT SPECIFIED
as a substring of ITEM NOT
SPECIFIED
. If you require the ability to replace substrings then you
could use the String Replacement Cleanser, or you could create a custom comparator
class that leverages an out of the box comparator class of your choice, but provides
you the ability to include a regular expressions (regex) to perform string
replacement.
{
"or": {
"nullValues": [
{
"attribute": "configuration/entityTypes/Contact/attributes/FirstName",
"value": "NOTSPECIFIED"
},
{
"attribute": "configuration/entityTypes/Contact/attributes/FirstName",
"value": "NULLVALUE"
}
]
},
"comparatorClasses": {
"mapping": [
{
"attribute": "configuration/entityTypes/Contact/attributes/FirstName",
"class": "com.reltio.match.comparator.BasicStringComparator"
}
]
}
Not Operator
Allows you to form complex boolean logic within your match group.
Nesting of Logical Operators
Allows you to form complex boolean logic within your match group.
{
"uri": "configuration/entityTypes/Organization/matchGroups/Example1",
"label": "Example1",
"type": "automatic",
"scope": "ALL",
"useOvOnly": "true",
"rule": {
"and": {
"exact": [
"configuration/entityTypes/Organization/attributes/Addresses/attributes/AddressLine1",
"configuration/entityTypes/Organization/attributes/Addresses/attributes/City",
"configuration/entityTypes/Organization/attributes/Addresses/attributes/StateProvince",
"configuration/entityTypes/Organization/attributes/Addresses/attributes/AddressType"
],
"equals": [
{
"values": [
"Shipping"
],
"uri": "configuration/entityTypes/Organization/attributes/Addresses/attributes/AddressType"
}
],
"exactOrNull": [
"configuration/entityTypes/Organization/attributes/StoreNumber"
],
"exactOrAllNull": [
"configuration/entityTypes/Organization/attributes/Addresses/attributes/AddressLine2",
"configuration/entityTypes/Organization/attributes/Addresses/attributes/Zip/attributes/Zip4",
"configuration/entityTypes/Organization/attributes/Addresses/attributes/Zip/attributes/Zip5",
"configuration/entityTypes/Organization/attributes/Addresses/attributes/Zip/attributes/PostalCode",
"configuration/entityTypes/Organization/attributes/Phone/attributes/FormattedNumber"
],
"ignoreInToken": [
"configuration/entityTypes/Organization/attributes/Addresses/attributes/Zip/attributes/PostalCode",
"configuration/entityTypes/Organization/attributes/Addresses/attributes/AddressType",
"configuration/entityTypes/Organization/attributes/BuyerLifecycleStatus/attributes/BuyerLifecycleStatus",
"configuration/entityTypes/Organization/attributes/Addresses/attributes/AddressLine2",
"configuration/entityTypes/Organization/attributes/Addresses/attributes/Zip/attributes/Zip4",
"configuration/entityTypes/Organization/attributes/Addresses/attributes/StateProvince"
],
"notEquals": [
{
"values": [
"Virtual Account",
"Assigned Account"
],
"uri": "configuration/entityTypes/Organization/attributes/BuyerLifecycleStatus/attributes/BuyerLifecycleStatus"
}
],
"in": [
{
"values": [
"SAP",
"SFDC"
],
"uri": "configuration/sources"
}
],
"or": {
"exactOrNull": [
"configuration/entityTypes/Organization/attributes/DUNSNumber"
],
"exactOrAllNull": [
"configuration/entityTypes/Organization/attributes/DUNSNumber"
]
},
"not": {
"and": {
"exact": [
"configuration/sources"
],
"equals": [
{
"values": [
"SFDC"
],
"uri": "configuration/sources"
}
]
}
}
}
},
"scoreStandalone": 0,
"scoreIncremental": 0
},