Example 4 - Two Rules, one a Fuzzier Version than the Other
The match rule configuration contains two match rules and both use fuzzy comparison to match.
Please review the example match rule configuration below.
Rule 1 has the following characteristics:
- The tactic of the rule is exact Zip5 and fuzzy name.
- The user is confident about the stringency of the rule so she has set it to the
automatic
type, thus for the candidate pairs that evaluate to true for this rule, a directive will be sent to the engine to merge the profiles. - The user has configured
ExactOrAllNull
for theIsCurrent
attribute and has utilizednullValues
to set any occurrence offalse
to(null)
for use with theExactOrAllNull
comparison operator.
{
"uri": "configuration/entityTypes/Household/matchGroups/HouseholdAddressAndZip",
"label": "Exact(AddressLine1, Zip) & Fuzzy(Last)",
"type": "automatic",
"rule": {
"matchTokenClasses": {
"mapping": [
{
"attribute": "configuration/entityTypes/Household/attributes/Name",
"class": "com.reltio.match.token.ComplexPhoneticNameToken"
}
]
},
"and": {
"exact": [
"configuration/entityTypes/Household/attributes/Address/attributes/Zip5",
"configuration/entityTypes/Household/attributes/Address/attributes/AddressLine1"
],
"fuzzy": [
"configuration/entityTypes/Household/attributes/Name"
],
"and": {
"exactOrAllNull": [
"configuration/entityTypes/Household/attributes/IsCurrent"
],
"nullValues": [
{
"attribute": "configuration/entityTypes/Household/attributes/IsCurrent",
"value": "false"
}
]
}
}
},
"scoreStandalone": 25,
"scoreIncremental": 25
},
Rule 2 has the following characteristics:
- The tactic of the rule is fuzzy Zip5 and fuzzy name.
- The user is less confident about the stringency of the rule so she has set it to the
suspect
type, thus for the candidate pairs that evaluate to true for this rule, a directive will be sent to the engine to queue the candidate pair for review. - The user has configured the
RangeNumericComparator
for the Zip5 attribute and set a threshold of 2 which will tolerate a range of zip codes that are smaller or bigger than each other within the value of 2. For example, 90203 will match to 90201, 90202, 90203, 90204, 90205.
{
"uri": "configuration/entityTypes/Household/matchGroups/CloseLastExactAddressCloseZip",
"label": "Close Last + Exact Address (Exact Street and Close Postal Code)",
"type": "suspect",
"rule": {
"matchTokenClasses": {
"mapping": [
{
"attribute": "configuration/entityTypes/Household/attributes/Name",
"class": "com.reltio.match.token.ComplexPhoneticNameToken"
}
]
},
"comparatorClasses": {
"mapping": [
{
"attribute": "configuration/entityTypes/Household/attributes/Address/attributes/Zip5",
"parameters": [
{
"parameter": "threshold",
"value": "2"
}
],
"class": "com.reltio.match.comparator.RangeNumericComparator"
}
]
},
"and": {
"exact": [
"configuration/entityTypes/Household/attributes/Address/attributes/Premise",
"configuration/entityTypes/Household/attributes/Address/attributes/Street"
],
"exactOrAllNull": [
"configuration/entityTypes/Household/attributes/Address/attributes/POBox"
],
"fuzzy": [
"configuration/entityTypes/Household/attributes/Address/attributes/Zip5",
"configuration/entityTypes/Household/attributes/Name"
],
"and": {
"exactOrAllNull": [
"configuration/entityTypes/Household/attributes/IsCurrent"
],
"nullValues": [
{
"attribute": "configuration/entityTypes/Household/attributes/IsCurrent",
"value": "false"
}
]
}
}
},
"scoreStandalone": 50,
"scoreIncremental": 25
}