Sun Master Index provides a flexible framework, allowing you to create custom Java classes to plug in to most master index application components. The following topics provide descriptions of some components for which you can create custom classes to use in your master index application.
Master Index Survivor Calculator Plug-ins (Repository) – Define how the single best record (SBR) is generated.
Master Index Query Builder Plug-ins (Repository) – Define how queries are performed against the master index database.
Master Index Block Picker Plug-ins (Repository) – Define how the blocks of fields in a blocking query are selected during a query.
Master Index Pass Controller Plug-ins (Repository) – Define how the master index application determines whether to perform additional match passes against a record.
Match Engine Plug-ins (Repository) – Define logic that connects to a match engine other than the Sun Match Engine.
Standardization Engine Plug-ins (Repository) - Define logic that connects to a standardization engine other than that provided by the Sun Match Engine.
Phonetic Encoders Plug-ins for a Master Index (Repository) – Define logic that connects to phonetic encoders other than those provided.
The survivor calculator determines which field values from the various system records will populate the SBR for the enterprise record. You can create a custom survivor calculator class that selects the surviving field values. Your custom class must implement the survivor calculator interface. Call selectField in com.stc.eindex.survivor.SurvivorStrategyInterface to return the SBR value for each field. For more information about the classes and methods to use, see the Javadocs for Sun Master Index. The primary classes are contained in the com.stc.eindex.survivor package. Enter the fully qualified class path for the custom survivor calculator in the Best Record file.
The query builder defines the different types of queries that can be used in the master index application. You can implement custom queries using custom plug-ins. To create a new query builder, you must define a class that extends the base abstract com.stc.eindex.querybuilder.QueryBuilder and then specify that class in a query-builder element in the Candidate Select file. The exception thrown is com.stc.eindex.querybuilder.QueryBuilderException. The following methods must be implemented.
init - This method receives the XML elements after the config element of the Candidate Select file so the query builder can read its custom configuration.
getApplicableQueryIds - This method returns an array of string IDs indicating the query objects that can be generated given the available criteria. For example, in the blocking configuration, the unique ID of each block definition is the string that is returned by getApplicableQueryIds.
buildQueryObject - This method constructs the query object based on one of the applicable query IDs provided as an input argument.
For more information about query-related Java classes, see the master index Javadocs.
The block picker chooses which block definition in the blocking query to use for the next matching pass. You can create a custom block picker class to select query blocks in a customized manner. If you create a custom block picker, specify the fully qualified name of this custom plug-in for the block-picker element of the Match Field file. Follow these guidelines when implementing a custom block picker.
Implement the com.stc.eindex.matching.BlockPicker interface to select the blocks in the desired order.
If none of the remaining blocks should be executed, throw a NoBlockApplicableException from the pickBlock method.
The matching process can be executed in multiple stages. After a block is evaluated, the pass controller determines whether the results found are sufficient or if matching should continue by performing another match pass. If you create a custom pass controller, specify the name of the custom Pass Controller in the pass-controller element of the Match Field file. Follow these guidelines when implementing a custom pass controller.
Implement the com.stc.eindex.matching.PassController interface to evaluate whether to do another pass or not.
Return true from evalAnotherPass to specify that an additional pass be performed; return false to specify that no additional passes are performed.
You can define classes to connect to a custom match engine instead of the Sun Match Engine. Specify the names of the custom classes you create in the matcher-api and matcher-config elements of the Match Field file. Follow these guidelines when implementing custom match engine classes.
Implement the com.stc.eindex.matching.MatcherAPI interface to communicate with the match engine.
Implement the com.stc.eindex.matching.MatchEngineConfiguration interface to retrieve any configuration values the match engine requires for initialization.
You can define classes to connect to a custom standardization engine instead of the Sun Match Engine. Specify the names of the custom classes you create in the standardizer-api and standardizer-config elements of the Match Field file. Follow these guidelines when implementing custom standardization engine classes.
Implement the com.stc.eindex.matching.StandardizerAPI interface to communicate with the standardization engine.
Implement the com.stc.eindex.matching.StandardizerEngineConfiguration interface to retrieve any configuration values the standardization engine requires for initialization.
The master index application supports several phonetic encoders, and you can define custom classes to implement additional phonetic encoders if needed. Specify the names of the custom classes you create in the encoder-implementation-class element of the Match Field file. When creating a custom phonetic encoder class, implement the com.stc.eindex.phonetic.PhoneticEncoder interface.