Design it step by step
Define entity granularity
Invented catalogue: brand, model, and specification version identify a product. Color variants may be separate SKUs under one model. Define that relationship before labeling.
Retrieve bounded candidate pairs
Use model IDs, verified brand aliases, and specifications to shortlist pairs. Translation similarity is not identity. Full N×M comparisons grow quickly; audit missed pairs and the candidate cap.
Inspect support and conflict separately
The official recipe combines a general Score with field-level Noul checks. Here, capacity or regional-version differences matter; punctuation may not. Missing values remain unknown, not matching evidence.
Suggest links before merging
Keep original records and field provenance. Reject clear mismatches; review uncertain pairs. Hard specification conflicts must survive a high aggregate rating. Apply reversible database transactions.
Validate group-wide constraints
A≈B and B≈C do not automatically justify a merged group. Check IDs, versions, and specifications across the group. Measure false merges and missed matches by language and alias type.
Worked example · Invented by this site
| Observation | Judgment | Application action |
|---|---|---|
| X2 64GB / X2 128GB | Related series, conflicting capacity | Do not merge automatically |
| Verified brand aliases, matching specs | Potential match with evidence | Create a reviewable suggestion |
| Capacity absent in both | Missing is not agreement | Obtain data or review |
A copyable design draft
Original examples. JSON illustrates request or input structure; Python calculates invented scores without an API call. Verify current interfaces and task policy before integrating.
# Input contract for an invented pair; not an API result.
{
"left": {"id": "A", "model": "X2", "capacity_gb": 64},
"right": {"id": "B", "model": "X2", "capacity_gb": 128},
"entity_granularity": "model_and_capacity",
"allowed_outcomes": ["match", "different", "review"]
}Design a decisionCommon mistakes
- Merging on name similarity alone.
- Calling two missing fields a match.
- Applying transitive merging without group constraints.
TRY / THINK / COMPARE
Think first, then compare
Names match but regional versions differ. Merge their prices?
Show explanation
First define entity granularity and regional SKU relationships. Preserve prices with their source and scope.
Before handing it over
- Granularity and identifiers are defined.
- Candidate coverage is audited.
- Missing and conflicting data are separate.
- Group constraints and rollback provenance exist.
Common questions
Does a high Score authorize a merge?
No. Apply field rules and maintain reversible records.
How should aliases be maintained?
Retain evidence and review history for each alias.
Sources and further reading
Inspired by official patterns and Datawhale practice topics. Explanations, examples, and exercises are independently written. These are teaching designs, not live API runs or benchmarks.