Verifying Matches
Learn how to search for potential matches in JSON array entities in your tenant.
Use the Verify Matches to search for potential matches in JSON array entities in your tenant.
- Match tokens
- Match attributes
- intersection: This field must not be empty.
- matched: This field is
true
if matched by both documents and tokens; otherwise, it isfalse
. - matchedByDocuments: This field is
true
if matched by documents; otherwise, it isfalse
.
Request
POST {TenantURL}/entities/_verifyMatches
Name | Required | Description | Examples | |
---|---|---|---|---|
Headers | CustomerTenant | Yes | Customer Tenant ID. | - |
DataTenant | Yes | Data Tenant ID. | - | |
URI Parameters | rules | Yes | Enabled match rules. |
|
show | Optional |
Determines the information that will be available in a response. The user can assign the following values:
| If show is set to full, the output has the following format:
| |
documentsFromDatabase | Optional | The default value is false. If set to true, for existing entities, their actual documents from database will be used for explanation. If set to false, the documents will be regenerated for explanation (expected behavior). | ||
checkOvercollisionedTokens | Optional | The default value is true . When it is true , the API checks if the match token phrases are marked as overcollisioned in the database. If yes, the match token phrases are represented as overcollisioned and removed from the intersection list. If set to false , the tokens list might contain overcollisioned tokens. | ||
time | Optional | If this parameter is specified, it returns the match document and the match token phrases built for the entity according to the entity state and business configuration state at the specified time. If you specify the time parameter, then the db parameter is ignored and effectively set to false . When the time parameter is specified, the API results may show some discrepancy based on the following:
| ||
Body | Yes | A pair of entities to be matched. |
|
Request
Returns the match explanation for each matching group.
Example
POST /Abc/entities/_verifyMatches
{
"first":{
"type":"configuration/entityTypes/HCP",
"attributes":{
"LastName":[
{
"value":"Stark"
}
],
"FirstName":[
{
"value":"Ronald"
}
],
"Address":[
{
"value":{
"City":[
{
"value":"winterfell"
}
],
"StateProvince":[
{
"value":"north"
}
],
"Country":[
{
"value":"westeros"
}
]
}
}
]
},
"crosswalks":[
{
"type":"configuration/sources/TWITTER",
"value":"test1"
}
]
},
"second":{
"uri":"entities/03w0bJo"
},
"matchGroups":[
{
"uri":"configuration/entityTypes/HCP/matchGroups/RelevanceBasedRule",
"label":"Automatic on load Addresses",
"type":"relevance_based",
"useOvOnly":"false",
"rule":{
"exact":[
"configuration/entityTypes/HCP/attributes/FirstName",
"configuration/entityTypes/HCP/attributes/LastName"
],
"weights":[
{
"attribute":"configuration/entityTypes/HCP/attributes/FirstName",
"weight":"1"
},
{
"attribute":"configuration/entityTypes/HCP/attributes/LastName",
"weight":"1"
}
],
"actionThresholds":[
{
"type":"potential_match",
"threshold":"0.6-1.0"
}
]
}
},
{
"uri":"configuration/entityTypes/HCP/matchGroups/RelevanceExactFirstName",
"label":"Will be bypassed",
"type":"relevance_based",
"useOvOnly":"false",
"rule":{
"exact":[
"configuration/entityTypes/HCP/attributes/FirstName"
],
"weights":[
{
"attribute":"configuration/entityTypes/HCP/attributes/FirstName",
"weight":"1"
}
],
"actionThresholds":[
{
"type":"potential_match",
"threshold":"0.6-1.0"
}
]
}
},
{
"uri":"configuration/entityTypes/HCP/matchGroups/SuspectExactMiddleName",
"label":"Exact middle name",
"type":"suspect",
"useOvOnly":"false",
"rule":{
"exact":[
"configuration/entityTypes/HCP/attributes/MiddleName"
]
}
}
]
}
Response
{
"summary": [
"There are common match tokens. These entities are considered as match candidates and will be checked according to the list of common applicable match rules.",
"There are bypassed rules for the given entity type. Bypassed match rules do not participate in the matching process.",
"No manually set 'not-matches' are found for the entities"
],
"matchTokensSummary": {
"firstTotal": 1,
"secondTotal": 1,
"common": [
"ronald:stark"
]
},
"applicableMatchGroups": {
"first": [
"configuration/entityTypes/HCP/matchGroups/RelevanceBasedRule",
"configuration/entityTypes/HCP/matchGroups/RelevanceExactFirstName"
],
"second": [
"configuration/entityTypes/HCP/matchGroups/RelevanceBasedRule",
"configuration/entityTypes/HCP/matchGroups/RelevanceExactFirstName"
],
"both": [
"configuration/entityTypes/HCP/matchGroups/RelevanceBasedRule",
"configuration/entityTypes/HCP/matchGroups/RelevanceExactFirstName"
],
"bypassed": [
"configuration/entityTypes/HCP/matchGroups/RelevanceExactFirstName"
]
},
"rules": {
"configuration/entityTypes/HCP/matchGroups/RelevanceBasedRule": {
"label": "Automatic on load Addresses",
"matched": true,
"matchAction": "POTENTIAL_MATCH",
"matchedByDocuments": true,
"bypassed": false,
"relevance": 1.0,
"useOvOnly": false,
"matchTokens": {
"first": {
"foundInMatchTables": false,
"tokens": [
"ronald:stark"
],
"tokensGenerated": 1
},
"second": {
"foundInMatchTables": false,
"tokens": [
"ronald:stark"
],
"tokensGenerated": 1
},
"intersection": {
"tokens": [
"ronald:stark"
]
}
},
"rule": {
"relevance": 1.0,
"and": [
{
"exact": {
"FirstName": {
"ignoreInToken": false,
"relevance": 1.0
},
"LastName": {
"ignoreInToken": false,
"relevance": 1.0
}
},
"relevance": 1.0
}
]
}
},
"configuration/entityTypes/HCP/matchGroups/RelevanceExactFirstName": {
"label": "Will be bypassed",
"matched": false,
"matchAction": "POTENTIAL_MATCH",
"matchedByDocuments": true,
"bypassed": true,
"relevance": 1.0,
"useOvOnly": false,
"matchTokens": {
"first": {
"foundInMatchTables": false,
"tokens": [
"ronald"
],
"tokensGenerated": 1
},
"second": {
"foundInMatchTables": false,
"tokens": [
"ronald"
],
"tokensGenerated": 1
},
"intersection": {
"tokens": [
"ronald"
]
}
},
"rule": {
"relevance": 1.0,
"and": [
{
"exact": {
"FirstName": {
"ignoreInToken": false,
"relevance": 1.0
}
},
"relevance": 1.0
}
]
}
},
"configuration/entityTypes/HCP/matchGroups/SuspectExactMiddleName": {
"label": "Exact middle name",
"matched": false,
"matchedByDocuments": false,
"bypassed": false,
"useOvOnly": false,
"matchTokens": {
"first": {
"foundInMatchTables": true,
"tokensGenerated": 0
},
"second": {
"foundInMatchTables": true,
"tokensGenerated": 0
},
"intersection": {}
},
"rule": {
"and": [
{
"exact": {
"MiddleName": {
"match": false,
"ignoreInToken": false
}
}
}
]
},
"manualMatches": {
"notMatches": {
"03w0bJo": [
{
"id": "02Yae1",
"updatedTime": 1699463284016,
"updatedBy": "User"
}
]
},
"asMatches": {
"03w0bJo": [
{
"id": "01oRn9",
"updatedTime": 1699463274839,
"updatedBy": "User"
}
]
},
"effectiveNotMatches": {
"03w0bJo": [
"02Yae1"
]
},
"effectiveAsMatches": {
"03w0bJo": [
"01oRn9"
]
}
}
}
}
}
Field | Description |
---|---|
foundInMatchTables | Indicates whether C* MATCH_TOKENS CF contains all the listed tokens. |
tokens | Provides a list of all the match tokens generated for the match rules configured for the entity type. |
intersection | Provides a list of common tokens for the entities. |
setAsNotMatch | Indicates that the entities are marked as "Not a Match". |
alreadySubscribed | Shows that the CT entity is already subscribed to the DT entity |
label | Displays the description of the match rule |
useOvOnly | Displays the OV strategy chosen for the match rule. |
ignoreInToken | Excludes the particular attribute from the match token. |
summary | Contains information, for the checked entities, on:
|
matchTokensSummary | Contains the following details:
|
applicableMatchGroups | Displays the list of match rules applicable to the first , second , or both entities in the request body. Also, displays the bypassed rules if they exist.Note: If a rule is bypassed, the matched field will always be false. |
manualMatches | Displays information when any of the entities in the request body are manually set asMatches , or as notMatches . |