The Match Groups Construct
The matchGroups
construct is a collection of match groups with rules
and operators that are needed for proper matching.
If you wish to enable matching for a specific entity type in your tenant, then you will include the matchGroups section within the definition of the entity type in the metadata configuration of your tenant. (Again, this section is optional and only needs to exist if you wish to perform matching for a specific entity type in your tenant.) The matchGroups section will contain one or more match groups, each containing a single rule and other elements that support the rule; Each match group should generally represent a tactic for finding and evaluating match pairs, different from the other match groups.
Anatomy of a Classic Match Group
Looking at a match group in a JSON editor, you can easily see the high-level,
classic elements within it. The primary element is the rule which defines a
boolean formula (see the and operator that anchors the boolean formula in
this example) for evaluating the similarity of a pair of profiles given to the match
group for evaluation. It is also within the rule element that four other very common
elements are held: ignoreInToken
(optional),
Cleanse
(optional), matchTokenClasses
(required), and comparatorClasses
(required). The remaining
elements that are visible (URI, label, and so on), and some not shown in the
snapshot, surround the rule and provide additional declarations that affect the
behavior of the group and in essence, the rule. The following image shows the
classic structure of a match group:
Thus, the overall structure for a match group within the
matchGroups
section looks like this:
Just to gain some quick familiarity, here is an example of an actual match group JSON within a matchGroups section. Notice that it begins with a unique uri, and the actual rule component in this example is five lines down from the top.
Classic Match Rule - Sample
The actual JSON that is represented at a high-level above is detailed below.
"uri": "configuration/entityTypes/HCP/matchGroups/MatchonFirstNameandLastName",
"label": "Match on FirstName and LastName",
"type": "suspect",
"scope": "ALL",
"useOvOnly": "true",
"rule": {
"ignoreInToken": [
"configuration/entityTypes/HCP/attributes/FirstName"
],
"cleanse": [
{
"cleanseAdapter": "com.reltio.cleanse.impl.NameDictionaryCleanser",
"mappings": [
{
"attribute": "configuration/entityTypes/HCP/attributes/FirstName",
"cleanseAttribute": "configuration/entityTypes/HCP/attributes/FirstName"
}
]
}
],
"matchTokenClasses": {
"mapping": [
{
"attribute": "configuration/entityTypes/HCP/attributes/FirstName",
"class": "com.reltio.match.token.DoubleMetaphoneMatchToken"
}
]
},
"comparatorClasses": {
"mapping": [
{
"attribute": "configuration/entityTypes/HCP/attributes/FirstName",
"class": "com.reltio.match.comparator.DoubleMetaphoneComparator"
}
]
},
"and": {
"exact": [
"configuration/entityTypes/HCP/attributes/LastName"
],
"equals": [
{
"value": "Physician",
"values": [
"Physician"
],
"uri": "configuration/entityTypes/HCP/attributes/HCPType"
}
],
"fuzzy": [
"configuration/entityTypes/HCP/attributes/FirstName"
]
}
},
"scoreStandalone": 0,
"scoreIncremental": 0}
Most Commonly Used Elements of a Match Group
The following 11 elements are the most commonly used in a match group. Each is explained in detail in the sections that follow. Many should look familiar based on the JSON snapshot shown previously.
Element | Required/Optional | Purpose in the Match Group |
---|---|---|
uri |
Required | Unique namespace of the rule |
label |
Required | Your description of the rule, displayed in the MDM UI |
type |
Required | Governs the directive of the rule if the rule resolves to TRUE.
You can define the following types, each with its directive shown on
the right:
|
scope |
Optional | Governs whether match rules are enabled, disabled, apply to tenant records only and/or external matching. |
useOvOnly |
Optional | Restricts matching to only the OV within the attribute |
rule, negativeRule |
Required | One of them is required |
ignoreInToken |
Optional | Enables selective token suppression if needed |
cleanse |
Optional | Can provide on-the-fly cleansing of data |
matchTokenClasses |
Required | Declares which Token Classes should be utilized |
comparatorClasses |
Required | Declares which comparator Classes should be utilized |
comparison formula |
Required | Defines the attributes and operators used for determining similarity |