Answer
When the geographical location of two entities is within a certain distance (in miles), those entities can be considered as fuzzy matches for each other using the proximity match rule.
- Multi-Match Rule
- ProximateGeoToken
Multi-Match Rule:
The “multi” comparison depends on comparatorClasses
defined for the multi
URI. Do not specify the multi
operand in the match rule without also setting the comparator class. Attribute values are forwarded to the comparator class as a list in the order they are defined in the “attributes” section.
ProximateGeoToken:
The ProximateGeoToken only works correctly with multi
match rule, and the attributes in the multi
match rule must be specified in the following order:
-
Latitude
-
Longitude
For samples of the Multi-Match Rule and the ProximateGeo Token see the "Reference" section.
How to determine proximity for match
Using the link or this link determines the distance between two coordinates (please note that this is NOT the driving distance, it is the physical distance).
Match group are defined by the cumulative distance
Example of distance-transitive:
The distance of A to C = 0.6 miles (supposedly not merged)
The distance of A to B = 0.3 miles (merged)
The distance of B to C = 0.3 miles (merged)
A and C are merged due to B.
1
A----0.3miles East------B--------0.3miles East-------C
====================================================================
Note: There are also multiple sites that allow calculating the distance between 2 points.
"matchGroups": [
{
"uri": "configuration/entityTypes/GeoMatch/matchGroups/GeoMatchRule",
"label": "Geo Location Match Rule",
"type": "automatic",
"useOvOnly": "true",
"rule": {
"matchTokenClasses": {
"mapping": [
{
"attribute": "configuration/entityTypes/GeoMatch/attributes/Address/attributes/GeoLocation1",
"parameters": [
{
"parameter": "distance_miles",
"value": "0.4"
}
],
"class": "com.reltio.match.token.ProximateGeoToken"
},
{
"attribute": "configuration/entityTypes/GeoMatch/attributes/XREFID1",
"class": "com.reltio.match.token.ExactMatchToken"
}
]
},
"comparatorClasses": {
"mapping": [
{
"attribute": "configuration/entityTypes/GeoMatch/attributes/Address/attributes/GeoLocation1",
"parameters": [
{
"parameter": "distance_miles",
"value": "0.4"
}
],
"class": "com.reltio.match.comparator.ProximateGeoComparator"
}
]
},
"and": {
"exact": [
"configuration/entityTypes/GeoMatch/attributes/XREFID1"
]
},
"multi": [
{
"uri": "configuration/entityTypes/GeoMatch/attributes/Address/attributes/GeoLocation1",
"attributes": [
"configuration/entityTypes/GeoMatch/attributes/Address/attributes/GeoLocation/attributes/Latitude",
"configuration/entityTypes/GeoMatch/attributes/Address/attributes/GeoLocation/attributes/Longitude"
]
}
]
},
"scoreStandalone": 0,
"scoreIncremental": 0
}
],
Reference
https://docs.reltio.com/matchmergeconfig/proximityfuzzymatching.html
Comments
Hi @Shantanu Indra,
Please let us know if there is any way to configure this in "or" Condition. The rule we want to implement is to have a fuzzy address line1 or proximity range less than 0.5 mile.
Thanks,
Harsha
Please sign in to leave a comment.