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.

Table 1. Match Group Elements
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:
  • automatic - merge the pair of profiles
  • suspect - present the profiles to a data steward for review
  • relevance_based - use user-designed scoring to determine the outcome
  • <custom> - allow user to define her own rule type
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