Class ClusterLinks

All Implemented Interfaces:
LogicalOperator

public class ClusterLinks extends CompositeOperator
Transform record pairs into clusters of like records. The output of the DiscoverDuplicates 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 Details

    • ClusterLinks

      public ClusterLinks()
      Cluster record pairs use default record id field names of "id" and default left/right field patterns. Use setLeftDataIdField(String) and setRightDataIdField(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 side
      rightDataIdField - field uniquely identifying records on right hand side
  • Method Details

    • 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 from DiscoverDuplicates.

      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:
    • 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:
    • 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:
    • 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:
    • 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:
      1. Perform any validation of configuration, input types, etc
      2. Instantiate and configure sub-operators, adding them to the provided context via the method OperatorComposable.add(O)
      3. 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 class CompositeOperator
      Parameters:
      ctx - the context