- java.lang.Object
-
- com.pervasive.datarush.operators.AbstractLogicalOperator
-
- com.pervasive.datarush.operators.CompositeOperator
-
- com.pervasive.datarush.matching.cluster.ClusterLinks
-
- All Implemented Interfaces:
LogicalOperator
public class ClusterLinks extends CompositeOperator
Transform record pairs into clusters of like records. The output of theDiscoverDuplicates
operator is a stream of record pairs. Each pair of records has passed the given qualifications for being a potential match. This operator takes the record pair input and finds clusters of records that are alike. For example, a row contains records A and B, another contains records B and C. This operator will create a cluster for records A, B and C, generate a unique cluster identifier for the grouping and output a row for records A, B and C with the generated cluster identifier.A cluster may contain any number of records. Note that the original record pairings are lost as are the scores.
-
-
Constructor Summary
Constructors Constructor Description ClusterLinks()
Cluster record pairs use default record id field names of "id" and default left/right field patterns.ClusterLinks(String leftDataIdField, String rightDataIdField)
Cluster record pairs using the specified record id field names and default left/right field patterns.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
compose(CompositionContext ctx)
Compose the body of this operator.RecordPort
getInput()
Gets the record port providing the input to the clustering operation.String
getLeftDataIdField()
Gets the name of the field uniquely identifying records on the left hand side of the pairs.String
getLeftFieldPattern()
Gets the naming pattern used to determine the actual name of the left hand id field.RecordPort
getOutput()
Gets the record port providing the results of the clustering operation.String
getRightDataIdField()
Gets the name of the field uniquely identifying records on the right hand side of the pairs.String
getRightFieldPattern()
Gets the naming pattern used to determine the actual name of the right hand id field.void
setDataIdField(String name)
Sets the name of the field uniquely identifying records on the both sides of the pairs.void
setLeftDataIdField(String name)
Sets the name of the field uniquely identifying records on the left hand side of the pairs.void
setLeftFieldPattern(String pattern)
Sets the naming pattern used for fields from the left hand side record.void
setRightDataIdField(String name)
Sets the name of the field uniquely identifying records on the right hand side of the pairs.void
setRightFieldPattern(String pattern)
Sets the naming pattern used for fields from the right hand side record.-
Methods inherited from class com.pervasive.datarush.operators.AbstractLogicalOperator
disableParallelism, getInputPorts, getOutputPorts, newInput, newInput, newOutput, newRecordInput, newRecordInput, newRecordOutput, notifyError
-
-
-
-
Constructor Detail
-
ClusterLinks
public ClusterLinks()
Cluster record pairs use default record id field names of "id" and default left/right field patterns. UsesetLeftDataIdField(String)
andsetRightDataIdField(String)
to change these as necessary.
-
ClusterLinks
public ClusterLinks(String leftDataIdField, String rightDataIdField)
Cluster record pairs using the specified record id field names and default left/right field patterns.This name is the one used in the original record data producing the pairs, not the formatted name used in the input pair data.
- Parameters:
leftDataIdField
- field uniquely identifying records on left hand siderightDataIdField
- field uniquely identifying records on right hand side
-
-
Method Detail
-
getInput
public RecordPort getInput()
Gets the record port providing the input to the clustering operation.- Returns:
- the input port for the operation
-
getOutput
public RecordPort getOutput()
Gets the record port providing the results of the clustering operation.- Returns:
- the output port for the operation
-
setDataIdField
public void setDataIdField(String name)
Sets the name of the field uniquely identifying records on the both sides of the pairs. This is a convenience mechanism for when both sides use the same name, such as is the case with the output fromDiscoverDuplicates
.This name is the one used in the original record data producing the pairs, not the formatted name used in the input pair data.
- Parameters:
name
- the field uniquely identifying records on both the left and right hand side of pairs
-
setLeftFieldPattern
public void setLeftFieldPattern(String pattern)
Sets the naming pattern used for fields from the left hand side record. This will be used to determine the actual name of the left hand id field.- Parameters:
pattern
- name pattern for left hand side fields- See Also:
setLeftDataIdField(String)
-
getLeftFieldPattern
public String getLeftFieldPattern()
Gets the naming pattern used to determine the actual name of the left hand id field.- Returns:
- the name pattern for left hand side fields
- See Also:
getLeftDataIdField()
-
setLeftDataIdField
public void setLeftDataIdField(String name)
Sets the name of the field uniquely identifying records on the left hand side of the pairs. This name will also be used to identify cluster members in the output.This name is the one used in the original record data producing the pairs, not the formatted name used in the input pair data.
- Parameters:
name
- the field uniquely identifying records on the left hand side of pairs
-
getLeftDataIdField
public String getLeftDataIdField()
Gets the name of the field uniquely identifying records on the left hand side of the pairs. This name is also used to identify cluster members in the output.This name is the one used in the original record data producing the pairs, not the formatted name used in the input pair data.
- Returns:
- the field uniquely identifying records on the left hand side of pairs
-
setRightFieldPattern
public void setRightFieldPattern(String pattern)
Sets the naming pattern used for fields from the right hand side record. This will be used to determine the actual name of the right hand id field.- Parameters:
pattern
- name pattern for right hand side fields- See Also:
setRightDataIdField(String)
-
getRightFieldPattern
public String getRightFieldPattern()
Gets the naming pattern used to determine the actual name of the right hand id field.- Returns:
- the name pattern for right hand side fields
- See Also:
getRightDataIdField()
-
setRightDataIdField
public void setRightDataIdField(String name)
Sets the name of the field uniquely identifying records on the right hand side of the pairs.This name is the one used in the original record data producing the pairs, not the formatted name used in the input pair data.
- Parameters:
name
- the field uniquely identifying records on the right hand side of pairs
-
getRightDataIdField
public String getRightDataIdField()
Gets the name of the field uniquely identifying records on the right hand side of the pairs.This name is the one used in the original record data producing the pairs, not the formatted name used in the input pair data.
- Returns:
- the field uniquely identifying records on the right hand side of pairs
-
compose
protected void compose(CompositionContext ctx)
Description copied from class:CompositeOperator
Compose the body of this operator. Implementations should do the following:- Perform any validation of configuration, input types, etc
- Instantiate and configure sub-operators, adding them to the provided context via
the method
OperatorComposable.add(O)
- Create necessary connections via the method
OperatorComposable.connect(P, P)
. This includes connections from the composite's input ports to sub-operators, connections between sub-operators, and connections from sub-operators output ports to the composite's output ports
- Specified by:
compose
in classCompositeOperator
- Parameters:
ctx
- the context
-
-