Proximity Fuzzy Matching

Fuzzy matching based on proximity of two entities

When the geographical location of two entities is within a certain distance (in miles), such entities can be considered as fuzzy matches using the proximity match rule.

Match rules for proximity fuzzy matching are built by using the following:
  • Multi Match Rule
  • ProximateGeoToken

Multi Match Rule

The “multi” comparison depends on comparatorClasses defined for the multi URI. The multi operand must not be specified in the match rule without setting the comparator class. The attribute values are forwarded to the comparator class as a list in the order they are defined in the “attributes” section.

Multi Match Example

"uri":"configuration/entityTypes/TestLocation/matchGroups/suspectGeoLocation",
"label":"GeoLocationSuspect",
"type":"suspect",
"useOvOnly":"false",
"rule":{
   "multi":[
      {
         "uri":"configuration/entityTypes/TestLocation/attributes/GeoLocation1",
         "attributes":[
            "configuration/entityTypes/TestLocation/attributes/GeoLocation/attributes/Latitude",
            "configuration/entityTypes/TestLocation/attributes/GeoLocation/attributes/Longitude"
         ]
      }
   ],
   "matchTokenClasses":{
      "mapping":[
         {
            "attribute":"configuration/entityTypes/TestLocation/attributes/GeoLocation1",
            "parameters":[
               {
                  "parameter":"distance_miles",
                  "value":"0.4"
               }
            ],
            "class":"com.reltio.match.token.ProximateGeoToken"
         }
      ]
   },
   "comparatorClasses":{
      "mapping":[
         {
            "attribute":"configuration/entityTypes/TestLocation/attributes/GeoLocation1",
            "parameters":[
               {
                  "parameter":"distance_miles",
                  "value":"0.4"
               }
            ],
            "class":"com.reltio.match.comparator.ProximateGeoComparator"
         }
      ]
   }
}
}

The above rule defines that two entities are considered as matches if they are located within 0.4 miles from each other.

ProximateGeoToken

The proximateGeo token match token class generates tokens for an area around the geo point location (described by latitude and longitude attributes). The distance_miles (float number: recommended values are between 0.001 and 10) parameter specifies the radius of the area of the potentially matched geo locations. ProximateGeoToken works correctly only with multi match rule and the attributes in the multi match rule must be specified in the following order:
  1. Latitude
  2. Longitude

ProximateGeoToken Example

"uri":"configuration/entityTypes/TestLocation/matchGroups/suspectGeoLocation",
"label":"GeoLocationSuspect",
"type":"suspect",
"useOvOnly":"false",
"rule":{
   "multi":[
      {
         "uri":"configuration/entityTypes/TestLocation/attributes/GeoLocation1",
         "attributes":[
            "configuration/entityTypes/TestLocation/attributes/GeoLocation/attributes/Latitude",
            "configuration/entityTypes/TestLocation/attributes/GeoLocation/attributes/Longitude"
         ]
      }
   ],
   "matchTokenClasses":{
      "mapping":[
         {
            "attribute":"configuration/entityTypes/TestLocation/attributes/GeoLocation1",
            "parameters":[
               {
                  "parameter":"distance_miles",
                  "value":"0.4"
               }
            ],
            "class":"com.reltio.match.token.ProximateGeoToken"
         }
      ]
   },
   "comparatorClasses":{
      "mapping":[
         {
            "attribute":"configuration/entityTypes/TestLocation/attributes/GeoLocation1",
            "parameters":[
               {
                  "parameter":"distance_miles",
                  "value":"0.4"
               }
            ],
            "class":"com.reltio.match.comparator.ProximateGeoComparator"
         }
      ]
   }
}
}

The token class generates tokens for an area around the geo location point within a radius 0.4 miles.