tSemanticMatch
Semantic matching and traditional matching
Traditional duplicate detection relies on exact matches or pattern rules. For example, finding records where "company name" is identical or within a Levenshtein distance of 2.
Semantic matching compares the meaning of data using vector embeddings. Two product listings, one labeled "32-inch 4K smart television" and another "UltraHD smart TV 32 inch", are semantically identical even though the text differs completely. Semantic matching catches these fuzzy duplicates automatically without hard-coded rules.
Benefits of semantic matching:
- Handles synonyms: "car" and "automobile" match despite different words.
- Captures intent: "lightweight laptop" and "portable computer" are semantically similar.
- No rule maintenance: Uses learned representations instead of manual patterns.
- Scalable: Works with large datasets and complex product hierarchies.
How tSemanticMatch works
tSemanticMatch performs the following workflow:
- Takes an input record containing a search column; text or structured data.
- Uses that column as a query vector to search a vector database for similar records.
- Returns the closest matches along with similarity scores.
- Outputs records based on a score threshold: records with scores above the threshold pass to the Flow output; records below the threshold are rejected.
The component outputs the original input columns, the matched record details, and a similarity score for each match.
Vector database integration
tSemanticMatch currently only integrates with Milvus, a high-performance vector database optimized for similarity search. Milvus stores and indexes vector embeddings, allowing fast retrieval of similar records at scale.
Input and output schema
tSemanticMatch adds two columns to the input and Flow output schema:
- Result: The text or record content from the matching vector, retrieved using the configured text field name.
- Score: A similarity score (0.0-1.0) where 1.0 is a perfect match.
If no match is found or the score falls below the minimum threshold, the record is returned in the Reject output.
tSemanticMatch Standard Properties
These properties are used to configure tSemanticMatch running in the Standard Job framework.
The Standard tSemanticMatch component belongs to the AI family.
Basic settings
| Properties | Description |
|---|---|
|
Schema and Edit Schema |
|
| Search column |
The input column used as the query vector for searching. Select a column containing the data you want to match against (e.g., product description, customer feedback). This column's vector representation must be compatible with the vector field. |
|
Vector DB |
Select the vector database. |
|
URI |
Enter the endpoint URI in double quotes. For example, http://milvus-server:19530 or https://cloud-milvus.example.com. |
|
Token |
Enter the authentication token or API key required by your database. Leave blank if it runs without authentication. |
|
Database name |
Enter the name of the database containing your vector collection. |
|
Collection name |
Select the collection that stores the vector embeddings and associated data. |
|
Vector field name |
Select the field in the collection storing vector embeddings. |
|
Text field name |
This option is optional. Select the field in the collection containing human-readable text or content. If specified, this text is returned in the Result output column. If not specified, only the score is returned. |
|
Max results |
Enter the maximum number of matching records to return per input record. Set to 1 for single match. Increase for multiple matches. |
|
Min score |
Enter the minimum similarity score threshold. The value must be in the range 0.0-1.0. Records with scores below this value are returned in the reject output. For example, 0.6 means only records 60% similar or better are accepted. |
Advanced settings
| Properties | Description |
|---|---|
|
tStatCatcher Statistics |
Select this checkbox to gather the Job processing metadata at the Job level as well as at each component level. |
|
Primary key |
Select the field that uniquely identifies each record in the collection. This value is returned in the output to allow you to trace matches back to source records. |
|
Metadata field name |
Select the metadata field to which you want to apply filter conditions. |
| Filter | This option is only available when a field is selected in Metadata
field name. Define filter conditions with an operator and a value. The available operators depend on the vector database, not Talend Studio. The IN operator lets you define the exact values your data must match. For example: price IN 750,1000,1500 means that the value of the field price must be 750, 1000, or 1500. Any other value will be rejected. |
Global Variables
| Variables | Description |
|---|---|
|
Global Variables |
ERROR_MESSAGE: the error message generated by the component when an error occurs. This is an After variable and it returns a string. This variable functions only if the Die on error checkbox is cleared, if the component has this checkbox. |