我正在尝试使用SmartMastering检测重复项。对于字段定义,我不仅要指定属性,还要指定路径,即我想在字段节点下而不是从属节点下将关联文档与具有相同ssn的关联文档进行匹配。
我尝试使用属性定义中的名称空间指定字段。
{
"options": {
"propertyDefs": {
"property": [
{ "namespace": "", "localname": "ssn", "name": "ssn" },
]
},
"algorithms": {
},
"scoring": {
"add": [
{ "propertyName": "ssn", "weight": "50" },
]
},
"collections":{
"content": ["employees"]
},
"thresholds": {
"threshold": [
{ "above": "50", "label": "Possible Match" },
]
},
"tuning": { "maxScan": "200" }
}
}
当我在命名空间下指定节点时,当我没有得到任何结果时 试图匹配一个同事。
当我不指定时,我得到错误的匹配。这是因为它在整个文档(包括从属对象)中寻找SSN(和其他字段)。例如,如果史密斯先生和史密斯女士都是雇员,并且史密斯先生被列为史密斯女士的受抚养者,则在史密斯女士上运行matcher.findDocumentMatchesByOptionsName()会认为史密斯先生是一名匹配者,因为他的ssn将被列出在路径document.dependents [0] .ssn下。