Interface SzEngine


public interface SzEngine

Defines the Java interface to the Senzing engine functions. The Senzing engine functions primarily provide means of working with identity data records, entities and their relationships.

An SzEngine instance is typically obtained from an SzEnvironment instance via the SzEnvironment.getEngine() method as follows:

// How to obtain an SzEngine instance
try {
    // obtain the SzEnvironment (varies by application)
    SzEnvironment env = getEnvironment();

    SzEngine engine = env.getEngine();

    ...

} catch (SzException e) {
    // handle or rethrow the exception
    logError("Failed to get SzEngine.", e);
}

  • Method Details

    • primeEngine

      void primeEngine() throws SzException
      Pre-loads engine resources.

      Explicitly calling this method ensures the performance cost is incurred at a predictable time rather than unexpectedly with the first call requiring the resources.

      Usage:

      // How to prime the SzEngine to expedite subsequent operations
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // prime the engine
          engine.primeEngine();
      
          // use the primed engine to perform additional tasks
          ...
      
      } catch (SzException e) {
          // handle or rethrow the exception
          logError("Failed to prime engine.", e);
      }
      

      Throws:
      SzException - If a failure occurs.
      See Also:
    • getStats

      String getStats() throws SzException
      Gets and resets the internal engine workload statistics for the current operating system process.

      The output is helpful when interacting with Senzing support. Best practice to periodically log the results.

      Usage:

      // How to get engine stats after loading records
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // load some records to prime the stats
          ...
      
          // get the stats
          String stats = engine.getStats();
      
          // do something with the stats
          log(stats);
      
      } catch (SzException e) {
          // handle or rethrow the exception
          logError("Failed to load records with stats.", e);
      }
      

      Example Result:
      The example result is rather large, but can viewed here (formatted for readability).

      Returns:
      The String describing the statistics as JSON.
      Throws:
      SzException - If a failure occurs.
      See Also:
    • addRecord

      String addRecord(SzRecordKey recordKey, String recordDefinition, Set<SzFlag> flags) throws SzUnknownDataSourceException, SzBadInputException, SzException
      Loads a record into the repository and performs entity resolution.

      If a record already exists with the same data source code and record ID, it will be replaced. If the record definition contains DATA_SOURCE and RECORD_ID JSON keys, the values must match the dataSourceCode and recordId parameters.

      The specified Set of SzFlag instances may contain any SzFlag value, but only flags belonging to the SzFlagUsageGroup.SZ_ADD_RECORD_FLAGS group will be recognized (other SzFlag instances will be ignored). NOTE: EnumSet offers an efficient means of constructing a Set of SzFlag.

      Usage:

      // How to load a record
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get a record definition (varies by application)
          String recordDefinition =
                  """
                  {
                      "DATA_SOURCE": "TEST",
                      "RECORD_ID": "ABC123",
                      "NAME_FULL": "Joe Schmoe",
                      "PHONE_NUMBER": "702-555-1212",
                      "EMAIL_ADDRESS": "joeschmoe@nowhere.com"
                  }
                  """;
      
          // add the record to the repository
          String info = engine.addRecord(
              SzRecordKey.of("TEST", "ABC123"),
              recordDefinition,
              SZ_WITH_INFO_FLAGS);
      
          // do something with the "info JSON" (varies by application)
          JsonObject jsonObject = Json.createReader(new StringReader(info)).readObject();
          if (jsonObject.containsKey("AFFECTED_ENTITIES")) {
              JsonArray affectedArr = jsonObject.getJsonArray("AFFECTED_ENTITIES");
              for (JsonObject affected : affectedArr.getValuesAs(JsonObject.class)) {
                  long affectedId = affected.getJsonNumber("ENTITY_ID").longValue();
      
                  ...
              }
          }
      
      } catch (SzUnknownDataSourceException e) {
          // handle the unknown data source exception
          logError("Expected data source is not configured.", e);
      
      } catch (SzException e) {
          // handle or rethrow the exception
          logError("Failed to add record.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "DATA_SOURCE": "TEST",
          "RECORD_ID": "ABC123",
          "AFFECTED_ENTITIES": [
              {
                  "ENTITY_ID": 100002
              }
          ]
      }

      Parameters:
      recordKey - The non-null SzRecordKey that specifies the data source code and record ID of the record being added.
      recordDefinition - The String that defines the record, typically in JSON format.
      flags - The optional Set of SzFlag instances belonging to the SzFlagUsageGroup.SZ_ADD_RECORD_FLAGS group to control how the operation is performed and the content of the response, or null to default to SzFlag.SZ_NO_FLAGS or SzFlag.SZ_WITH_INFO_FLAGS for an INFO response. SzFlag.SZ_ADD_RECORD_DEFAULT_FLAGS is also available if you desire to use recommended defaults.
      Returns:
      The JSON String result produced by adding the record to the repository, or null if the specified flags do not indicate that an INFO message should be returned.
      Throws:
      SzUnknownDataSourceException - If an unrecognized data source code is specified.
      SzBadInputException - If the specified record definition has a data source or record ID value that conflicts with the specified data source code and/or record ID values.
      SzException - If a failure occurs.
      See Also:
    • addRecord

      default String addRecord(SzRecordKey recordKey, String recordDefinition) throws SzUnknownDataSourceException, SzBadInputException, SzException
      Convenience method for calling addRecord(SzRecordKey, String, Set) using SzFlag.SZ_ADD_RECORD_DEFAULT_FLAGS as the value for the flags parameter. See the addRecord(SzRecordKey, String, Set) documentation for details.

      NOTE: The String return type is still used despite the fact that in the current version this will always return null due to SzFlag.SZ_ADD_RECORD_DEFAULT_FLAGS being equivalent to SzFlag.SZ_NO_FLAGS. However, having a void return type would cause incompatibilities if a future release introduced a different value for SzFlag.SZ_ADD_RECORD_DEFAULT_FLAGS that did trigger a non-null return value.

      Usage:

      // How to load a record
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get a record definition (varies by application)
          String recordDefinition =
                  """
                  {
                      "DATA_SOURCE": "TEST",
                      "RECORD_ID": "ABC123",
                      "NAME_FULL": "Joe Schmoe",
                      "PHONE_NUMBER": "702-555-1212",
                      "EMAIL_ADDRESS": "joeschmoe@nowhere.com"
                  }
                  """;
      
          // add the record to the repository
          engine.addRecord(
              SzRecordKey.of("TEST", "ABC123"),
              recordDefinition);
      
      } catch (SzUnknownDataSourceException e) {
          // handle the unknown data source exception
          logError("Expected data source is not configured.", e);
      
      } catch (SzException e) {
          // handle or rethrow the exception
          logError("Failed to add record.", e);
      }
      

      Parameters:
      recordKey - The non-null SzRecordKey that specifies the data source code and record ID of the record being added.
      recordDefinition - The String that defines the record, typically in JSON format.
      Returns:
      The JSON String result produced by adding the record to the repository, which will always be null in the current version (see above).
      Throws:
      SzUnknownDataSourceException - If an unrecognized data source code is specified.
      SzBadInputException - If the specified record definition has a data source or record ID value that conflicts with the specified data source code and/or record ID values.
      SzException - If a failure occurs.
      See Also:
    • getRecordPreview

      String getRecordPreview(String recordDefinition, Set<SzFlag> flags) throws SzException
      Describes the features resulting from the hypothetical load of a record.

      This method is used to preview the features for a record that has not been loaded.

      The specified Set of SzFlag instances may contain any SzFlag value, but only flags belonging to the SzFlagUsageGroup.SZ_RECORD_PREVIEW_FLAGS group will be recognized (other SzFlag instances will be ignored). NOTE: EnumSet offers an efficient means of constructing a Set of SzFlag.

      Usage:

      // How to pre-process a record
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get a record definition (varies by application)
          String recordDefinition =
                  """
                  {
                      "DATA_SOURCE": "TEST",
                      "RECORD_ID": "DEF456",
                      "NAME_FULL": "John Doe",
                      "PHONE_NUMBER": "702-555-1212",
                      "EMAIL_ADDRESS": "johndoe@nowhere.com"
                  }
                  """;
      
          // get the record preview
          String preview = engine.getRecordPreview(
              recordDefinition, SZ_RECORD_PREVIEW_DEFAULT_FLAGS);
      
          // do something with the response JSON (varies by application)
          JsonObject jsonObject = Json.createReader(new StringReader(preview)).readObject();
      
          if (jsonObject.containsKey("FEATURES")) {
              JsonObject featuresObj = jsonObject.getJsonObject("FEATURES");
              featuresObj.forEach((featureName, jsonValue) -> {
                  ...
              });
          }
      
      } catch (SzException e) {
          // handle or rethrow the exception
          logError("Failed to get record preview.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "FEATURES": {
              "NAME": [
                  {
                      "LIB_FEAT_ID": -2,
                      "FEAT_DESC": "John Doe",
                      "ATTRIBUTES": {
                          "NAME_FULL": "John Doe"
                      }
                  }
              ],
              "PHONE": [
                  {
                      "LIB_FEAT_ID": 100002,
                      "FEAT_DESC": "702-555-1212",
                      "ATTRIBUTES": {
                          "PHONE_NUMBER": "702-555-1212"
                      }
                  }
              ],
              "EMAIL": [
                  {
                      "LIB_FEAT_ID": -3,
                      "FEAT_DESC": "johndoe@nowhere.com",
                      "ATTRIBUTES": {
                          "EMAIL_ADDRESS": "johndoe@nowhere.com"
                      }
                  }
              ]
          }
      }

      Parameters:
      recordDefinition - The String that defines the record, typically in JSON format.
      flags - The optional Set of SzFlag instances belonging to the SzFlagUsageGroup.SZ_RECORD_PREVIEW_FLAGS group to control how the operation is performed and the content of the response, or null to default to SzFlag.SZ_NO_FLAGS or SzFlag.SZ_RECORD_PREVIEW_DEFAULT_FLAGS for the default recommended flags.
      Returns:
      The JSON String record preview (depending on the specified flags).
      Throws:
      SzException - If a failure occurs.
      See Also:
    • getRecordPreview

      default String getRecordPreview(String recordDefinition) throws SzException
      Convenience method for calling getRecordPreview(String, Set) using SzFlag.SZ_RECORD_PREVIEW_DEFAULT_FLAGS as the value for the flags parameter. See the getRecordPreview(String, Set) documentation for details.

      Usage:

      // How to pre-process a record
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get a record definition (varies by application)
          String recordDefinition =
                  """
                  {
                      "DATA_SOURCE": "TEST",
                      "RECORD_ID": "DEF456",
                      "NAME_FULL": "John Doe",
                      "PHONE_NUMBER": "702-555-1212",
                      "EMAIL_ADDRESS": "johndoe@nowhere.com"
                  }
                  """;
      
          // get the record preview
          String preview = engine.getRecordPreview(recordDefinition);
      
          // do something with the response JSON (varies by application)
          JsonObject jsonObject = Json.createReader(new StringReader(preview)).readObject();
      
          if (jsonObject.containsKey("FEATURES")) {
              JsonObject featuresObj = jsonObject.getJsonObject("FEATURES");
              featuresObj.forEach((featureName, jsonValue) -> {
                  ...
              });
          }
      
      } catch (SzException e) {
          // handle or rethrow the exception
          logError("Failed to get record preview.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "FEATURES": {
              "NAME": [
                  {
                      "LIB_FEAT_ID": -2,
                      "FEAT_DESC": "John Doe",
                      "ATTRIBUTES": {
                          "NAME_FULL": "John Doe"
                      }
                  }
              ],
              "PHONE": [
                  {
                      "LIB_FEAT_ID": 100002,
                      "FEAT_DESC": "702-555-1212",
                      "ATTRIBUTES": {
                          "PHONE_NUMBER": "702-555-1212"
                      }
                  }
              ],
              "EMAIL": [
                  {
                      "LIB_FEAT_ID": -3,
                      "FEAT_DESC": "johndoe@nowhere.com",
                      "ATTRIBUTES": {
                          "EMAIL_ADDRESS": "johndoe@nowhere.com"
                      }
                  }
              ]
          }
      }

      Parameters:
      recordDefinition - The String that defines the record, typically in JSON format.
      Returns:
      The JSON String record preview using the default flags.
      Throws:
      SzException - If a failure occurs.
      See Also:
    • deleteRecord

      String deleteRecord(SzRecordKey recordKey, Set<SzFlag> flags) throws SzUnknownDataSourceException, SzException
      Deletes a record from the repository and performs entity resolution.

      NOTE: This method is idempotent in that it succeeds with no changes being made when the record is not found in the repository.

      The specified Set of SzFlag instances may contain any SzFlag value, but only flags belonging to the SzFlagUsageGroup.SZ_DELETE_RECORD_FLAGS group will be recognized (other SzFlag instances will be ignored). NOTE: EnumSet offers an efficient means of constructing a Set of SzFlag.

      Usage:

      // How to delete a record
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // delete the record from the repository
          String info = engine.deleteRecord(
              SzRecordKey.of("TEST", "ABC123"),
              SZ_WITH_INFO_FLAGS);
      
          // do something with the "info JSON" (varies by application)
          JsonObject jsonObject = Json.createReader(new StringReader(info)).readObject();
          if (jsonObject.containsKey("AFFECTED_ENTITIES")) {
              JsonArray affectedArr = jsonObject.getJsonArray("AFFECTED_ENTITIES");
              for (JsonObject affected : affectedArr.getValuesAs(JsonObject.class)) {
                  long affectedId = affected.getJsonNumber("ENTITY_ID").longValue();
      
                  ...
              }
          }
      
      } catch (SzUnknownDataSourceException e) {
          // handle the unknown data source exception
          logError("Expected data source is not configured.", e);
      
      } catch (SzException e) {
          // handle or rethrow the exception
          logError("Failed to delete record.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "DATA_SOURCE": "TEST",
          "RECORD_ID": "ABC123",
          "AFFECTED_ENTITIES": [
              {
                  "ENTITY_ID": 100001
              }
          ]
      }

      Parameters:
      recordKey - The non-null SzRecordKey that specifies the data source code and record Id of the record to delete.
      flags - The optional Set of SzFlag instances belonging to the SzFlagUsageGroup.SZ_DELETE_RECORD_FLAGS group to control how the operation is performed and the content of the response, or null to default to SzFlag.SZ_NO_FLAGS or SzFlag.SZ_WITH_INFO_FLAGS for an INFO response. SzFlag.SZ_DELETE_RECORD_DEFAULT_FLAGS is also available if you desire to use recommended defaults.
      Returns:
      The JSON String result produced by deleting the record from the repository, or null if the specified flags do not indicate that an INFO message should be returned.
      Throws:
      SzUnknownDataSourceException - If an unrecognized data source code is specified.
      SzException - If a failure occurs.
      See Also:
    • deleteRecord

      default String deleteRecord(SzRecordKey recordKey) throws SzUnknownDataSourceException, SzException
      Convenience method for calling deleteRecord(SzRecordKey, Set) using SzFlag.SZ_DELETE_RECORD_DEFAULT_FLAGS as the value for the flags parameter. See the deleteRecord(SzRecordKey, Set) documentation for details.

      NOTE: The String return type is still used despite the fact that in the current version this will always return null due to SzFlag.SZ_DELETE_RECORD_DEFAULT_FLAGS being equivalent to SzFlag.SZ_NO_FLAGS. However, having a void return type would cause incompatibilities if a future release introduced a different value for SzFlag.SZ_DELETE_RECORD_DEFAULT_FLAGS that did trigger a non-null return value.

      Usage:

      // How to delete a record
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // delete the record from the repository
          engine.deleteRecord(
              SzRecordKey.of("TEST", "ABC123"));
      
      } catch (SzUnknownDataSourceException e) {
          // handle the unknown data source exception
          logError("Expected data source is not configured.", e);
      
      } catch (SzException e) {
          // handle or rethrow the exception
          logError("Failed to delete record.", e);
      }
      

      Parameters:
      recordKey - The non-null SzRecordKey that specifies the data source code and record Id of the record to delete.
      Returns:
      The JSON String result produced by deleting the record from the repository, which will always be null in the current version (see above).
      Throws:
      SzUnknownDataSourceException - If an unrecognized data source code is specified.
      SzException - If a failure occurs.
      See Also:
    • reevaluateRecord

      String reevaluateRecord(SzRecordKey recordKey, Set<SzFlag> flags) throws SzUnknownDataSourceException, SzException
      Reevaluates an entity by record ID.

      This operation performs entity resolution. If the record is not found, then no changes are made.

      The specified Set of SzFlag instances may contain any SzFlag value, but only flags belonging to the SzFlagUsageGroup.SZ_REEVALUATE_RECORD_FLAGS group will be recognized (other SzFlag instances will be ignored). NOTE: EnumSet offers an efficient means of constructing a Set of SzFlag.

      Usage:

      // How to reevaluate a record
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // reevaluate a record in the repository
          String info = engine.reevaluateRecord(
              SzRecordKey.of("TEST", "ABC123"),
              SZ_WITH_INFO_FLAGS);
      
          // do something with the "info JSON" (varies by application)
          JsonObject jsonObject = Json.createReader(new StringReader(info)).readObject();
          if (jsonObject.containsKey("AFFECTED_ENTITIES")) {
              JsonArray affectedArr = jsonObject.getJsonArray("AFFECTED_ENTITIES");
              for (JsonObject affected : affectedArr.getValuesAs(JsonObject.class)) {
                  long affectedId = affected.getJsonNumber("ENTITY_ID").longValue();
      
                  ...
              }
          }
      
      } catch (SzUnknownDataSourceException e) {
          // handle the unknown data source exception
          logError("Expected data source is not configured.", e);
      
      } catch (SzException e) {
          // handle or rethrow the exception
          logError("Failed to reevaluate record.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "DATA_SOURCE": "TEST",
          "RECORD_ID": "ABC123",
          "AFFECTED_ENTITIES": [
              {
                  "ENTITY_ID": 100002
              }
          ]
      }

      Parameters:
      recordKey - The non-null SzRecordKey that specifies the data source code and record Id of the record to reevaluate.
      flags - The optional Set of SzFlag instances belonging to the SzFlagUsageGroup.SZ_REEVALUATE_RECORD_FLAGS group to control how the operation is performed and the content of the response, or null to default to SzFlag.SZ_NO_FLAGS or SzFlag.SZ_WITH_INFO_FLAGS for an INFO response. SzFlag.SZ_REEVALUATE_RECORD_DEFAULT_FLAGS is also available if you desire to use recommended defaults.
      Returns:
      The JSON String result produced by reevaluating the record in the repository, or null if the specified flags do not indicate that an INFO message should be returned.
      Throws:
      SzUnknownDataSourceException - If an unrecognized data source code is specified.
      SzException - If a failure occurs.
      See Also:
    • reevaluateRecord

      default String reevaluateRecord(SzRecordKey recordKey) throws SzUnknownDataSourceException, SzException
      Convenience method for calling reevaluateRecord(SzRecordKey, Set) using SzFlag.SZ_REEVALUATE_RECORD_DEFAULT_FLAGS as the value for the flags parameter. See the reevaluateRecord(SzRecordKey, Set) documentation for details.

      NOTE: The String return type is still used despite the fact that in the current version this will always return null due to SzFlag.SZ_REEVALUATE_RECORD_DEFAULT_FLAGS being equivalent to SzFlag.SZ_NO_FLAGS. However, having a void return type would cause incompatibilities if a future release introduced a different value for SzFlag.SZ_REEVALUATE_RECORD_DEFAULT_FLAGS that did trigger a non-null return value.

      Usage:

      // How to reevaluate a record
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // reevaluate a record in the repository
          engine.reevaluateRecord(
              SzRecordKey.of("TEST", "ABC123"));
      
      } catch (SzUnknownDataSourceException e) {
          // handle the unknown data source exception
          logError("Expected data source is not configured.", e);
      
      } catch (SzException e) {
          // handle or rethrow the exception
          logError("Failed to reevaluate record.", e);
      }
      

      Parameters:
      recordKey - The non-null SzRecordKey that specifies the data source code and record Id of the record to reevaluate.
      Returns:
      The JSON String result produced by reevaluating the record in the repository, which will always be null in the current version (see above).
      Throws:
      SzUnknownDataSourceException - If an unrecognized data source code is specified.
      SzException - If a failure occurs.
      See Also:
    • reevaluateEntity

      String reevaluateEntity(long entityId, Set<SzFlag> flags) throws SzException
      Reevaluates an entity by entity ID.

      This operation performs entity resolution. If the entity is not found, then no changes are made.

      The specified Set of SzFlag instances may contain any SzFlag value, but only flags belonging to the SzFlagUsageGroup.SZ_REEVALUATE_ENTITY_FLAGS group will be recognized (other SzFlag instances will be ignored). NOTE: EnumSet offers an efficient means of constructing a Set of SzFlag.

      Usage:

      // How to reevaluate an entity
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get the ID of an entity to reevaluate (varies by application)
          long entityId = getEntityId();
      
          // reevaluate an entity in the repository
          String info = engine.reevaluateEntity(entityId, SZ_WITH_INFO_FLAGS);
      
          // do something with the "info JSON" (varies by application)
          JsonObject jsonObject = Json.createReader(new StringReader(info)).readObject();
          if (jsonObject.containsKey("AFFECTED_ENTITIES")) {
              JsonArray affectedArr = jsonObject.getJsonArray("AFFECTED_ENTITIES");
              for (JsonObject affected : affectedArr.getValuesAs(JsonObject.class)) {
                  long affectedId = affected.getJsonNumber("ENTITY_ID").longValue();
      
                  ...
              }
          }
      
      } catch (SzException e) {
          // handle or rethrow the exception
          logError("Failed to reevaluate entity.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "AFFECTED_ENTITIES": [
              {
                  "ENTITY_ID": 100002
              }
          ]
      }

      Parameters:
      entityId - The ID of the resolved entity to reevaluate.
      flags - The optional Set of SzFlag instances belonging to the SzFlagUsageGroup.SZ_REEVALUATE_ENTITY_FLAGS group to control how the operation is performed and the content of the response, or null to default to SzFlag.SZ_NO_FLAGS or SzFlag.SZ_WITH_INFO_FLAGS for an INFO response. SzFlag.SZ_REEVALUATE_ENTITY_DEFAULT_FLAGS is also available if you desire to use recommended defaults.
      Returns:
      The JSON String result produced by reevaluating the entity in the repository, or null if the specified flags do not indicate that an INFO message should be returned.
      Throws:
      SzException - If a failure occurs.
      See Also:
    • reevaluateEntity

      default String reevaluateEntity(long entityId) throws SzException
      Convenience method for calling reevaluateEntity(long, Set) using SzFlag.SZ_REEVALUATE_ENTITY_DEFAULT_FLAGS as the value for the flags parameter. See the reevaluateEntity(long, Set) documentation for details.

      NOTE: The String return type is still used despite the fact that in the current version this will always return null due to SzFlag.SZ_REEVALUATE_ENTITY_DEFAULT_FLAGS being equivalent to SzFlag.SZ_NO_FLAGS. However, having a void return type would cause incompatibilities if a future release introduced a different value for SzFlag.SZ_REEVALUATE_ENTITY_DEFAULT_FLAGS that did trigger a non-null return value.

      Usage:

      // How to reevaluate an entity
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get the ID of an entity to reevaluate (varies by application)
          long entityId = getEntityId();
      
          // reevaluate an entity in the repository
          engine.reevaluateEntity(entityId);
      
      } catch (SzException e) {
          // handle or rethrow the exception
          logError("Failed to reevaluate entity.", e);
      }
      

      Parameters:
      entityId - The ID of the resolved entity to reevaluate.
      Returns:
      The JSON String result produced by reevaluating the entity in the repository, which will always be null in the current version (see above).
      Throws:
      SzException - If a failure occurs.
      See Also:
    • searchByAttributes

      String searchByAttributes(String attributes, String searchProfile, Set<SzFlag> flags) throws SzException
      Searches for entities that match or relate to the provided attributes.

      The default search profile is "SEARCH". Alternatively, "INGEST" may be used.

      If the specified search profile is null then the default will be used (alternatively, use searchByAttributes(String, Set) as a convenience method to omit the parameter).

      The specified Set of SzFlag instances may contain any SzFlag value, but only flags belonging to the SzFlagUsageGroup.SZ_SEARCH_FLAGS group are guaranteed to be recognized (other SzFlag instances will be ignored unless they have equivalent bit flags).

      NOTE: EnumSet offers an efficient means of constructing a Set of SzFlag.

      Usage:

      // How to search for entities matching criteria using a search profile
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get the search attributes (varies by application)
          String searchAttributes =
                  """
                  {
                      "NAME_FULL": "Joe Schmoe",
                      "PHONE_NUMBER": "702-555-1212",
                      "EMAIL_ADDRESS": "joeschmoe@nowhere.com"
                  }
                  """;
      
          // get a search profile (varies by application)
          String searchProfile = getSearchProfile();
      
          // search for matching entities in the repository
          String results = engine.searchByAttributes(
              searchAttributes,
              searchProfile,
              SZ_SEARCH_BY_ATTRIBUTES_DEFAULT_FLAGS);
      
          // do something with the response JSON (varies by application)
          JsonObject jsonObject = Json.createReader(new StringReader(results)).readObject();
          if (jsonObject.containsKey("RESOLVED_ENTITIES")) {
              JsonArray resultsArr = jsonObject.getJsonArray("RESOLVED_ENTITIES");
              for (JsonObject result : resultsArr.getValuesAs(JsonObject.class)) {
                  // get the match info for the result
                  JsonObject matchInfo = result.getJsonObject("MATCH_INFO");
      
                  ...
      
                  // get the entity for the result
                  JsonObject  entityInfo  = result.getJsonObject("ENTITY");
                  JsonObject  entity      = entityInfo.getJsonObject("RESOLVED_ENTITY");
                  long        entityId    = entity.getJsonNumber("ENTITY_ID").longValue();
      
                  ...
              }
          }
      
      } catch (SzException e) {
          // handle or rethrow the exception
          logError("Failed to search for entities.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "RESOLVED_ENTITIES": [
              {
                  "MATCH_INFO": {
                      "MATCH_LEVEL_CODE": "RESOLVED",
                      "MATCH_KEY": "+NAME+PHONE+EMAIL",
                      "ERRULE_CODE": "SF1_PNAME_CFF",
                      "CANDIDATE_KEYS": {
                          "EMAIL_KEY": [
                              {
                                  "FEAT_ID": 100007,
                                  "FEAT_DESC": "joeschmoe@NOWHERE.COM"
                              }
                          ],
                          "NAMEPHONE_KEY": [
                              {
                                  "FEAT_ID": 100008,
                                  "FEAT_DESC": "JSF|XM|PHONE.PHONE_LAST_5=51212"
                              },
                              {
                                  "FEAT_ID": 100009,
                                  "FEAT_DESC": "JOE|XM|PHONE.PHONE_LAST_5=51212"
                              }
                          ],
                          "NAME_KEY": [
                              {
                                  "FEAT_ID": 100004,
                                  "FEAT_DESC": "JOE|XM"
                              },
                              {
                                  "FEAT_ID": 100005,
                                  "FEAT_DESC": "JSF|XM"
                              }
                          ],
                          "PHONE_KEY": [
                              {
                                  "FEAT_ID": 100006,
                                  "FEAT_DESC": "7025551212"
                              }
                          ]
                      },
                      "FEATURE_SCORES": {
                          "EMAIL": [
                              {
                                  "INBOUND_FEAT_ID": 100003,
                                  "INBOUND_FEAT_DESC": "joeschmoe@nowhere.com",
                                  "CANDIDATE_FEAT_ID": 100003,
                                  "CANDIDATE_FEAT_DESC": "joeschmoe@nowhere.com",
                                  "SCORE": 100,
                                  "ADDITIONAL_SCORES": {
                                      "FULL_SCORE": 100
                                  },
                                  "SCORE_BUCKET": "SAME",
                                  "SCORE_BEHAVIOR": "F1"
                              }
                          ],
                          "NAME": [
                              {
                                  "INBOUND_FEAT_ID": 100001,
                                  "INBOUND_FEAT_DESC": "Joe Schmoe",
                                  "CANDIDATE_FEAT_ID": 100001,
                                  "CANDIDATE_FEAT_DESC": "Joe Schmoe",
                                  "SCORE": 100,
                                  "ADDITIONAL_SCORES": {
                                      "GNR_FN": 100,
                                      "GNR_SN": -1,
                                      "GNR_GN": -1,
                                      "GENERATION_MATCH": -1,
                                      "GNR_ON": -1
                                  },
                                  "SCORE_BUCKET": "SAME",
                                  "SCORE_BEHAVIOR": "NAME"
                              }
                          ],
                          "PHONE": [
                              {
                                  "INBOUND_FEAT_ID": 100002,
                                  "INBOUND_FEAT_DESC": "702-555-1212",
                                  "CANDIDATE_FEAT_ID": 100002,
                                  "CANDIDATE_FEAT_DESC": "702-555-1212",
                                  "SCORE": 100,
                                  "ADDITIONAL_SCORES": {
                                      "FULL_SCORE": 100
                                  },
                                  "SCORE_BUCKET": "SAME",
                                  "SCORE_BEHAVIOR": "FF"
                              }
                          ]
                      }
                  },
                  "ENTITY": {
                      "RESOLVED_ENTITY": {
                          "ENTITY_ID": 100002,
                          "ENTITY_NAME": "Joseph W Schmoe",
                          "FEATURES": {
                              "ADDRESS": [
                                  {
                                      "FEAT_DESC": "101 Main St.; Las Vegas, NV 89101",
                                      "LIB_FEAT_ID": 100011,
                                      "FEAT_DESC_VALUES": [
                                          {
                                              "FEAT_DESC": "101 Main St.; Las Vegas, NV 89101",
                                              "LIB_FEAT_ID": 100011
                                          }
                                      ]
                                  }
                              ],
                              "EMAIL": [
                                  {
                                      "FEAT_DESC": "joeschmoe@nowhere.com",
                                      "LIB_FEAT_ID": 100003,
                                      "FEAT_DESC_VALUES": [
                                          {
                                              "FEAT_DESC": "joeschmoe@nowhere.com",
                                              "LIB_FEAT_ID": 100003
                                          }
                                      ]
                                  }
                              ],
                              "NAME": [
                                  {
                                      "FEAT_DESC": "Joseph W Schmoe",
                                      "LIB_FEAT_ID": 100021,
                                      "FEAT_DESC_VALUES": [
                                          {
                                              "FEAT_DESC": "Joseph W Schmoe",
                                              "LIB_FEAT_ID": 100021
                                          },
                                          {
                                              "FEAT_DESC": "Joseph Schmoe",
                                              "LIB_FEAT_ID": 100010
                                          },
                                          {
                                              "FEAT_DESC": "Joe Schmoe",
                                              "LIB_FEAT_ID": 100001
                                          }
                                      ]
                                  }
                              ],
                              "PHONE": [
                                  {
                                      "FEAT_DESC": "702-555-1212",
                                      "LIB_FEAT_ID": 100002,
                                      "FEAT_DESC_VALUES": [
                                          {
                                              "FEAT_DESC": "702-555-1212",
                                              "LIB_FEAT_ID": 100002
                                          }
                                      ]
                                  },
                                  {
                                      "FEAT_DESC": "702-555-1212",
                                      "LIB_FEAT_ID": 100002,
                                      "USAGE_TYPE": "HOME",
                                      "FEAT_DESC_VALUES": [
                                          {
                                              "FEAT_DESC": "702-555-1212",
                                              "LIB_FEAT_ID": 100002
                                          }
                                      ]
                                  },
                                  {
                                      "FEAT_DESC": "702-555-1313",
                                      "LIB_FEAT_ID": 100012,
                                      "USAGE_TYPE": "WORK",
                                      "FEAT_DESC_VALUES": [
                                          {
                                              "FEAT_DESC": "702-555-1313",
                                              "LIB_FEAT_ID": 100012
                                          }
                                      ]
                                  }
                              ]
                          },
                          "RECORD_SUMMARY": [
                              {
                                  "DATA_SOURCE": "TEST",
                                  "RECORD_COUNT": 3
                              }
                          ]
                      }
                  }
              }
          ],
          "SEARCH_STATISTICS": [
              {
                  "CANDIDATE_KEYS": {
                      "FEATURE_TYPES": [
                          {
                              "FTYPE_CODE": "NAME_KEY",
                              "FOUND": 2,
                              "NOT_FOUND": 0,
                              "GENERIC": 0
                          },
                          {
                              "FTYPE_CODE": "PHONE_KEY",
                              "FOUND": 1,
                              "NOT_FOUND": 0,
                              "GENERIC": 0
                          },
                          {
                              "FTYPE_CODE": "EMAIL_KEY",
                              "FOUND": 1,
                              "NOT_FOUND": 0,
                              "GENERIC": 0
                          },
                          {
                              "FTYPE_CODE": "NAMEPHONE_KEY",
                              "FOUND": 2,
                              "NOT_FOUND": 0,
                              "GENERIC": 0
                          }
                      ],
                      "SUMMARY": {
                          "FOUND": 6,
                          "NOT_FOUND": 0,
                          "GENERIC": 0
                      }
                  }
              }
          ]
      }

      Parameters:
      attributes - The search attributes defining the hypothetical record to match and/or relate to in order to obtain the search results.
      searchProfile - The optional search profile identifier, or null if the default search profile should be used for the search.
      flags - The optional Set of SzFlag instances belonging to the SzFlagUsageGroup.SZ_SEARCH_FLAGS group to control how the operation is performed and the content of the response, or null to default to SzFlag.SZ_NO_FLAGS or SzFlag.SZ_SEARCH_BY_ATTRIBUTES_DEFAULT_FLAGS for the default recommended flags.
      Returns:
      The resulting JSON String describing the result of the search.
      Throws:
      SzException - If a failure occurs.
      See Also:
    • searchByAttributes

      default String searchByAttributes(String attributes, String searchProfile) throws SzException
      Convenience method for calling searchByAttributes(String, String, Set) using SzFlag.SZ_SEARCH_BY_ATTRIBUTES_DEFAULT_FLAGS as the value for the flags parameter. See the searchByAttributes(String, String, Set) documentation for details.

      Usage:

      // How to search for entities matching criteria using a search profile
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get the search attributes (varies by application)
          String searchAttributes =
                  """
                  {
                      "NAME_FULL": "Joe Schmoe",
                      "PHONE_NUMBER": "702-555-1212",
                      "EMAIL_ADDRESS": "joeschmoe@nowhere.com"
                  }
                  """;
      
          // get a search profile (varies by application)
          String searchProfile = getSearchProfile();
      
          // search for matching entities in the repository
          String results = engine.searchByAttributes(searchAttributes,
                                                     searchProfile);
      
          // do something with the response JSON (varies by application)
          JsonObject jsonObject = Json.createReader(new StringReader(results)).readObject();
          if (jsonObject.containsKey("RESOLVED_ENTITIES")) {
              JsonArray resultsArr = jsonObject.getJsonArray("RESOLVED_ENTITIES");
              for (JsonObject result : resultsArr.getValuesAs(JsonObject.class)) {
                  // get the match info for the result
                  JsonObject matchInfo = result.getJsonObject("MATCH_INFO");
      
                  ...
      
                  // get the entity for the result
                  JsonObject  entityInfo  = result.getJsonObject("ENTITY");
                  JsonObject  entity      = entityInfo.getJsonObject("RESOLVED_ENTITY");
                  long        entityId    = entity.getJsonNumber("ENTITY_ID").longValue();
      
                  ...
              }
          }
      
      } catch (SzException e) {
          // handle or rethrow the exception
          logError("Failed to search for entities.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "RESOLVED_ENTITIES": [
              {
                  "MATCH_INFO": {
                      "MATCH_LEVEL_CODE": "RESOLVED",
                      "MATCH_KEY": "+NAME+PHONE+EMAIL",
                      "ERRULE_CODE": "SF1_PNAME_CFF",
                      "CANDIDATE_KEYS": {
                          "EMAIL_KEY": [
                              {
                                  "FEAT_ID": 100007,
                                  "FEAT_DESC": "joeschmoe@NOWHERE.COM"
                              }
                          ],
                          "NAMEPHONE_KEY": [
                              {
                                  "FEAT_ID": 100008,
                                  "FEAT_DESC": "JSF|XM|PHONE.PHONE_LAST_5=51212"
                              },
                              {
                                  "FEAT_ID": 100009,
                                  "FEAT_DESC": "JOE|XM|PHONE.PHONE_LAST_5=51212"
                              }
                          ],
                          "NAME_KEY": [
                              {
                                  "FEAT_ID": 100004,
                                  "FEAT_DESC": "JOE|XM"
                              },
                              {
                                  "FEAT_ID": 100005,
                                  "FEAT_DESC": "JSF|XM"
                              }
                          ],
                          "PHONE_KEY": [
                              {
                                  "FEAT_ID": 100006,
                                  "FEAT_DESC": "7025551212"
                              }
                          ]
                      },
                      "FEATURE_SCORES": {
                          "EMAIL": [
                              {
                                  "INBOUND_FEAT_ID": 100003,
                                  "INBOUND_FEAT_DESC": "joeschmoe@nowhere.com",
                                  "CANDIDATE_FEAT_ID": 100003,
                                  "CANDIDATE_FEAT_DESC": "joeschmoe@nowhere.com",
                                  "SCORE": 100,
                                  "ADDITIONAL_SCORES": {
                                      "FULL_SCORE": 100
                                  },
                                  "SCORE_BUCKET": "SAME",
                                  "SCORE_BEHAVIOR": "F1"
                              }
                          ],
                          "NAME": [
                              {
                                  "INBOUND_FEAT_ID": 100001,
                                  "INBOUND_FEAT_DESC": "Joe Schmoe",
                                  "CANDIDATE_FEAT_ID": 100001,
                                  "CANDIDATE_FEAT_DESC": "Joe Schmoe",
                                  "SCORE": 100,
                                  "ADDITIONAL_SCORES": {
                                      "GNR_FN": 100,
                                      "GNR_SN": -1,
                                      "GNR_GN": -1,
                                      "GENERATION_MATCH": -1,
                                      "GNR_ON": -1
                                  },
                                  "SCORE_BUCKET": "SAME",
                                  "SCORE_BEHAVIOR": "NAME"
                              }
                          ],
                          "PHONE": [
                              {
                                  "INBOUND_FEAT_ID": 100002,
                                  "INBOUND_FEAT_DESC": "702-555-1212",
                                  "CANDIDATE_FEAT_ID": 100002,
                                  "CANDIDATE_FEAT_DESC": "702-555-1212",
                                  "SCORE": 100,
                                  "ADDITIONAL_SCORES": {
                                      "FULL_SCORE": 100
                                  },
                                  "SCORE_BUCKET": "SAME",
                                  "SCORE_BEHAVIOR": "FF"
                              }
                          ]
                      }
                  },
                  "ENTITY": {
                      "RESOLVED_ENTITY": {
                          "ENTITY_ID": 100002,
                          "ENTITY_NAME": "Joseph W Schmoe",
                          "FEATURES": {
                              "ADDRESS": [
                                  {
                                      "FEAT_DESC": "101 Main St.; Las Vegas, NV 89101",
                                      "LIB_FEAT_ID": 100011,
                                      "FEAT_DESC_VALUES": [
                                          {
                                              "FEAT_DESC": "101 Main St.; Las Vegas, NV 89101",
                                              "LIB_FEAT_ID": 100011
                                          }
                                      ]
                                  }
                              ],
                              "EMAIL": [
                                  {
                                      "FEAT_DESC": "joeschmoe@nowhere.com",
                                      "LIB_FEAT_ID": 100003,
                                      "FEAT_DESC_VALUES": [
                                          {
                                              "FEAT_DESC": "joeschmoe@nowhere.com",
                                              "LIB_FEAT_ID": 100003
                                          }
                                      ]
                                  }
                              ],
                              "NAME": [
                                  {
                                      "FEAT_DESC": "Joseph W Schmoe",
                                      "LIB_FEAT_ID": 100021,
                                      "FEAT_DESC_VALUES": [
                                          {
                                              "FEAT_DESC": "Joseph W Schmoe",
                                              "LIB_FEAT_ID": 100021
                                          },
                                          {
                                              "FEAT_DESC": "Joseph Schmoe",
                                              "LIB_FEAT_ID": 100010
                                          },
                                          {
                                              "FEAT_DESC": "Joe Schmoe",
                                              "LIB_FEAT_ID": 100001
                                          }
                                      ]
                                  }
                              ],
                              "PHONE": [
                                  {
                                      "FEAT_DESC": "702-555-1212",
                                      "LIB_FEAT_ID": 100002,
                                      "FEAT_DESC_VALUES": [
                                          {
                                              "FEAT_DESC": "702-555-1212",
                                              "LIB_FEAT_ID": 100002
                                          }
                                      ]
                                  },
                                  {
                                      "FEAT_DESC": "702-555-1212",
                                      "LIB_FEAT_ID": 100002,
                                      "USAGE_TYPE": "HOME",
                                      "FEAT_DESC_VALUES": [
                                          {
                                              "FEAT_DESC": "702-555-1212",
                                              "LIB_FEAT_ID": 100002
                                          }
                                      ]
                                  },
                                  {
                                      "FEAT_DESC": "702-555-1313",
                                      "LIB_FEAT_ID": 100012,
                                      "USAGE_TYPE": "WORK",
                                      "FEAT_DESC_VALUES": [
                                          {
                                              "FEAT_DESC": "702-555-1313",
                                              "LIB_FEAT_ID": 100012
                                          }
                                      ]
                                  }
                              ]
                          },
                          "RECORD_SUMMARY": [
                              {
                                  "DATA_SOURCE": "TEST",
                                  "RECORD_COUNT": 3
                              }
                          ]
                      }
                  }
              }
          ],
          "SEARCH_STATISTICS": [
              {
                  "CANDIDATE_KEYS": {
                      "FEATURE_TYPES": [
                          {
                              "FTYPE_CODE": "NAME_KEY",
                              "FOUND": 2,
                              "NOT_FOUND": 0,
                              "GENERIC": 0
                          },
                          {
                              "FTYPE_CODE": "PHONE_KEY",
                              "FOUND": 1,
                              "NOT_FOUND": 0,
                              "GENERIC": 0
                          },
                          {
                              "FTYPE_CODE": "EMAIL_KEY",
                              "FOUND": 1,
                              "NOT_FOUND": 0,
                              "GENERIC": 0
                          },
                          {
                              "FTYPE_CODE": "NAMEPHONE_KEY",
                              "FOUND": 2,
                              "NOT_FOUND": 0,
                              "GENERIC": 0
                          }
                      ],
                      "SUMMARY": {
                          "FOUND": 6,
                          "NOT_FOUND": 0,
                          "GENERIC": 0
                      }
                  }
              }
          ]
      }

      Parameters:
      attributes - The search attributes defining the hypothetical record to match and/or relate to in order to obtain the search results.
      searchProfile - The optional search profile identifier, or null if the default search profile should be used for the search.
      Returns:
      The resulting JSON String describing the result of the search.
      Throws:
      SzException - If a failure occurs.
      See Also:
    • searchByAttributes

      default String searchByAttributes(String attributes, Set<SzFlag> flags) throws SzException
      Convenience method for calling searchByAttributes(String, String, Set) with a null value for the search profile parameter. See the searchByAttributes(String, String, Set) documentation for details.

      Usage:

      // How to search for entities matching criteria
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get the search attributes (varies by application)
          String searchAttributes =
                  """
                  {
                      "NAME_FULL": "Joe Schmoe",
                      "PHONE_NUMBER": "702-555-1212",
                      "EMAIL_ADDRESS": "joeschmoe@nowhere.com"
                  }
                  """;
      
          // search for matching entities in the repository
          String results = engine.searchByAttributes(
              searchAttributes,
              SZ_SEARCH_BY_ATTRIBUTES_DEFAULT_FLAGS);
      
          // do something with the response JSON (varies by application)
          JsonObject jsonObject = Json.createReader(new StringReader(results)).readObject();
          if (jsonObject.containsKey("RESOLVED_ENTITIES")) {
              JsonArray resultsArr = jsonObject.getJsonArray("RESOLVED_ENTITIES");
              for (JsonObject result : resultsArr.getValuesAs(JsonObject.class)) {
                  // get the match info for the result
                  JsonObject matchInfo = result.getJsonObject("MATCH_INFO");
      
                  ...
      
                  // get the entity for the result
                  JsonObject  entityInfo  = result.getJsonObject("ENTITY");
                  JsonObject  entity      = entityInfo.getJsonObject("RESOLVED_ENTITY");
                  long        entityId    = entity.getJsonNumber("ENTITY_ID").longValue();
      
                  ...
              }
          }
      
      } catch (SzException e) {
          // handle or rethrow the exception
          logError("Failed to search for entities.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "RESOLVED_ENTITIES": [
              {
                  "MATCH_INFO": {
                      "MATCH_LEVEL_CODE": "RESOLVED",
                      "MATCH_KEY": "+NAME+PHONE+EMAIL",
                      "ERRULE_CODE": "SF1_PNAME_CFF",
                      "CANDIDATE_KEYS": {
                          "EMAIL_KEY": [
                              {
                                  "FEAT_ID": 100007,
                                  "FEAT_DESC": "joeschmoe@NOWHERE.COM"
                              }
                          ],
                          "NAMEPHONE_KEY": [
                              {
                                  "FEAT_ID": 100008,
                                  "FEAT_DESC": "JSF|XM|PHONE.PHONE_LAST_5=51212"
                              },
                              {
                                  "FEAT_ID": 100009,
                                  "FEAT_DESC": "JOE|XM|PHONE.PHONE_LAST_5=51212"
                              }
                          ],
                          "NAME_KEY": [
                              {
                                  "FEAT_ID": 100004,
                                  "FEAT_DESC": "JOE|XM"
                              },
                              {
                                  "FEAT_ID": 100005,
                                  "FEAT_DESC": "JSF|XM"
                              }
                          ],
                          "PHONE_KEY": [
                              {
                                  "FEAT_ID": 100006,
                                  "FEAT_DESC": "7025551212"
                              }
                          ]
                      },
                      "FEATURE_SCORES": {
                          "EMAIL": [
                              {
                                  "INBOUND_FEAT_ID": 100003,
                                  "INBOUND_FEAT_DESC": "joeschmoe@nowhere.com",
                                  "CANDIDATE_FEAT_ID": 100003,
                                  "CANDIDATE_FEAT_DESC": "joeschmoe@nowhere.com",
                                  "SCORE": 100,
                                  "ADDITIONAL_SCORES": {
                                      "FULL_SCORE": 100
                                  },
                                  "SCORE_BUCKET": "SAME",
                                  "SCORE_BEHAVIOR": "F1"
                              }
                          ],
                          "NAME": [
                              {
                                  "INBOUND_FEAT_ID": 100001,
                                  "INBOUND_FEAT_DESC": "Joe Schmoe",
                                  "CANDIDATE_FEAT_ID": 100001,
                                  "CANDIDATE_FEAT_DESC": "Joe Schmoe",
                                  "SCORE": 100,
                                  "ADDITIONAL_SCORES": {
                                      "GNR_FN": 100,
                                      "GNR_SN": -1,
                                      "GNR_GN": -1,
                                      "GENERATION_MATCH": -1,
                                      "GNR_ON": -1
                                  },
                                  "SCORE_BUCKET": "SAME",
                                  "SCORE_BEHAVIOR": "NAME"
                              }
                          ],
                          "PHONE": [
                              {
                                  "INBOUND_FEAT_ID": 100002,
                                  "INBOUND_FEAT_DESC": "702-555-1212",
                                  "CANDIDATE_FEAT_ID": 100002,
                                  "CANDIDATE_FEAT_DESC": "702-555-1212",
                                  "SCORE": 100,
                                  "ADDITIONAL_SCORES": {
                                      "FULL_SCORE": 100
                                  },
                                  "SCORE_BUCKET": "SAME",
                                  "SCORE_BEHAVIOR": "FF"
                              }
                          ]
                      }
                  },
                  "ENTITY": {
                      "RESOLVED_ENTITY": {
                          "ENTITY_ID": 100002,
                          "ENTITY_NAME": "Joseph W Schmoe",
                          "FEATURES": {
                              "ADDRESS": [
                                  {
                                      "FEAT_DESC": "101 Main St.; Las Vegas, NV 89101",
                                      "LIB_FEAT_ID": 100011,
                                      "FEAT_DESC_VALUES": [
                                          {
                                              "FEAT_DESC": "101 Main St.; Las Vegas, NV 89101",
                                              "LIB_FEAT_ID": 100011
                                          }
                                      ]
                                  }
                              ],
                              "EMAIL": [
                                  {
                                      "FEAT_DESC": "joeschmoe@nowhere.com",
                                      "LIB_FEAT_ID": 100003,
                                      "FEAT_DESC_VALUES": [
                                          {
                                              "FEAT_DESC": "joeschmoe@nowhere.com",
                                              "LIB_FEAT_ID": 100003
                                          }
                                      ]
                                  }
                              ],
                              "NAME": [
                                  {
                                      "FEAT_DESC": "Joseph W Schmoe",
                                      "LIB_FEAT_ID": 100021,
                                      "FEAT_DESC_VALUES": [
                                          {
                                              "FEAT_DESC": "Joseph W Schmoe",
                                              "LIB_FEAT_ID": 100021
                                          },
                                          {
                                              "FEAT_DESC": "Joseph Schmoe",
                                              "LIB_FEAT_ID": 100010
                                          },
                                          {
                                              "FEAT_DESC": "Joe Schmoe",
                                              "LIB_FEAT_ID": 100001
                                          }
                                      ]
                                  }
                              ],
                              "PHONE": [
                                  {
                                      "FEAT_DESC": "702-555-1212",
                                      "LIB_FEAT_ID": 100002,
                                      "FEAT_DESC_VALUES": [
                                          {
                                              "FEAT_DESC": "702-555-1212",
                                              "LIB_FEAT_ID": 100002
                                          }
                                      ]
                                  },
                                  {
                                      "FEAT_DESC": "702-555-1212",
                                      "LIB_FEAT_ID": 100002,
                                      "USAGE_TYPE": "HOME",
                                      "FEAT_DESC_VALUES": [
                                          {
                                              "FEAT_DESC": "702-555-1212",
                                              "LIB_FEAT_ID": 100002
                                          }
                                      ]
                                  },
                                  {
                                      "FEAT_DESC": "702-555-1313",
                                      "LIB_FEAT_ID": 100012,
                                      "USAGE_TYPE": "WORK",
                                      "FEAT_DESC_VALUES": [
                                          {
                                              "FEAT_DESC": "702-555-1313",
                                              "LIB_FEAT_ID": 100012
                                          }
                                      ]
                                  }
                              ]
                          },
                          "RECORD_SUMMARY": [
                              {
                                  "DATA_SOURCE": "TEST",
                                  "RECORD_COUNT": 3
                              }
                          ]
                      }
                  }
              }
          ],
          "SEARCH_STATISTICS": [
              {
                  "CANDIDATE_KEYS": {
                      "FEATURE_TYPES": [
                          {
                              "FTYPE_CODE": "NAME_KEY",
                              "FOUND": 2,
                              "NOT_FOUND": 0,
                              "GENERIC": 0
                          },
                          {
                              "FTYPE_CODE": "PHONE_KEY",
                              "FOUND": 1,
                              "NOT_FOUND": 0,
                              "GENERIC": 0
                          },
                          {
                              "FTYPE_CODE": "EMAIL_KEY",
                              "FOUND": 1,
                              "NOT_FOUND": 0,
                              "GENERIC": 0
                          },
                          {
                              "FTYPE_CODE": "NAMEPHONE_KEY",
                              "FOUND": 2,
                              "NOT_FOUND": 0,
                              "GENERIC": 0
                          }
                      ],
                      "SUMMARY": {
                          "FOUND": 6,
                          "NOT_FOUND": 0,
                          "GENERIC": 0
                      }
                  }
              }
          ]
      }

      Parameters:
      attributes - The search attributes defining the hypothetical record to match and/or relate to in order to obtain the search results.
      flags - The optional Set of SzFlag instances belonging to the SzFlagUsageGroup.SZ_SEARCH_FLAGS group to control how the operation is performed and the content of the response, or null to default to SzFlag.SZ_NO_FLAGS or SzFlag.SZ_SEARCH_BY_ATTRIBUTES_DEFAULT_FLAGS for the default recommended flags.
      Returns:
      The resulting JSON String describing the result of the search.
      Throws:
      SzException - If a failure occurs.
      See Also:
    • searchByAttributes

      default String searchByAttributes(String attributes) throws SzException
      Convenience method for calling searchByAttributes(String, String, Set) with a null value for the search profile parameter and SzFlag.SZ_SEARCH_BY_ATTRIBUTES_DEFAULT_FLAGS as the value for the flags parameter. See the searchByAttributes(String, String, Set) documentation for details.

      Usage:

      // How to search for entities matching criteria
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get the search attributes (varies by application)
          String searchAttributes =
                  """
                  {
                      "NAME_FULL": "Joe Schmoe",
                      "PHONE_NUMBER": "702-555-1212",
                      "EMAIL_ADDRESS": "joeschmoe@nowhere.com"
                  }
                  """;
      
          // search for matching entities in the repository
          String results = engine.searchByAttributes(searchAttributes);
      
          // do something with the response JSON (varies by application)
          JsonObject jsonObject = Json.createReader(new StringReader(results)).readObject();
          if (jsonObject.containsKey("RESOLVED_ENTITIES")) {
              JsonArray resultsArr = jsonObject.getJsonArray("RESOLVED_ENTITIES");
              for (JsonObject result : resultsArr.getValuesAs(JsonObject.class)) {
                  // get the match info for the result
                  JsonObject matchInfo = result.getJsonObject("MATCH_INFO");
      
                  ...
      
                  // get the entity for the result
                  JsonObject  entityInfo  = result.getJsonObject("ENTITY");
                  JsonObject  entity      = entityInfo.getJsonObject("RESOLVED_ENTITY");
                  long        entityId    = entity.getJsonNumber("ENTITY_ID").longValue();
      
                  ...
              }
          }
      
      } catch (SzException e) {
          // handle or rethrow the exception
          logError("Failed to search for entities.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "RESOLVED_ENTITIES": [
              {
                  "MATCH_INFO": {
                      "MATCH_LEVEL_CODE": "RESOLVED",
                      "MATCH_KEY": "+NAME+PHONE+EMAIL",
                      "ERRULE_CODE": "SF1_PNAME_CFF",
                      "CANDIDATE_KEYS": {
                          "EMAIL_KEY": [
                              {
                                  "FEAT_ID": 100007,
                                  "FEAT_DESC": "joeschmoe@NOWHERE.COM"
                              }
                          ],
                          "NAMEPHONE_KEY": [
                              {
                                  "FEAT_ID": 100008,
                                  "FEAT_DESC": "JSF|XM|PHONE.PHONE_LAST_5=51212"
                              },
                              {
                                  "FEAT_ID": 100009,
                                  "FEAT_DESC": "JOE|XM|PHONE.PHONE_LAST_5=51212"
                              }
                          ],
                          "NAME_KEY": [
                              {
                                  "FEAT_ID": 100004,
                                  "FEAT_DESC": "JOE|XM"
                              },
                              {
                                  "FEAT_ID": 100005,
                                  "FEAT_DESC": "JSF|XM"
                              }
                          ],
                          "PHONE_KEY": [
                              {
                                  "FEAT_ID": 100006,
                                  "FEAT_DESC": "7025551212"
                              }
                          ]
                      },
                      "FEATURE_SCORES": {
                          "EMAIL": [
                              {
                                  "INBOUND_FEAT_ID": 100003,
                                  "INBOUND_FEAT_DESC": "joeschmoe@nowhere.com",
                                  "CANDIDATE_FEAT_ID": 100003,
                                  "CANDIDATE_FEAT_DESC": "joeschmoe@nowhere.com",
                                  "SCORE": 100,
                                  "ADDITIONAL_SCORES": {
                                      "FULL_SCORE": 100
                                  },
                                  "SCORE_BUCKET": "SAME",
                                  "SCORE_BEHAVIOR": "F1"
                              }
                          ],
                          "NAME": [
                              {
                                  "INBOUND_FEAT_ID": 100001,
                                  "INBOUND_FEAT_DESC": "Joe Schmoe",
                                  "CANDIDATE_FEAT_ID": 100001,
                                  "CANDIDATE_FEAT_DESC": "Joe Schmoe",
                                  "SCORE": 100,
                                  "ADDITIONAL_SCORES": {
                                      "GNR_FN": 100,
                                      "GNR_SN": -1,
                                      "GNR_GN": -1,
                                      "GENERATION_MATCH": -1,
                                      "GNR_ON": -1
                                  },
                                  "SCORE_BUCKET": "SAME",
                                  "SCORE_BEHAVIOR": "NAME"
                              }
                          ],
                          "PHONE": [
                              {
                                  "INBOUND_FEAT_ID": 100002,
                                  "INBOUND_FEAT_DESC": "702-555-1212",
                                  "CANDIDATE_FEAT_ID": 100002,
                                  "CANDIDATE_FEAT_DESC": "702-555-1212",
                                  "SCORE": 100,
                                  "ADDITIONAL_SCORES": {
                                      "FULL_SCORE": 100
                                  },
                                  "SCORE_BUCKET": "SAME",
                                  "SCORE_BEHAVIOR": "FF"
                              }
                          ]
                      }
                  },
                  "ENTITY": {
                      "RESOLVED_ENTITY": {
                          "ENTITY_ID": 100002,
                          "ENTITY_NAME": "Joseph W Schmoe",
                          "FEATURES": {
                              "ADDRESS": [
                                  {
                                      "FEAT_DESC": "101 Main St.; Las Vegas, NV 89101",
                                      "LIB_FEAT_ID": 100011,
                                      "FEAT_DESC_VALUES": [
                                          {
                                              "FEAT_DESC": "101 Main St.; Las Vegas, NV 89101",
                                              "LIB_FEAT_ID": 100011
                                          }
                                      ]
                                  }
                              ],
                              "EMAIL": [
                                  {
                                      "FEAT_DESC": "joeschmoe@nowhere.com",
                                      "LIB_FEAT_ID": 100003,
                                      "FEAT_DESC_VALUES": [
                                          {
                                              "FEAT_DESC": "joeschmoe@nowhere.com",
                                              "LIB_FEAT_ID": 100003
                                          }
                                      ]
                                  }
                              ],
                              "NAME": [
                                  {
                                      "FEAT_DESC": "Joseph W Schmoe",
                                      "LIB_FEAT_ID": 100021,
                                      "FEAT_DESC_VALUES": [
                                          {
                                              "FEAT_DESC": "Joseph W Schmoe",
                                              "LIB_FEAT_ID": 100021
                                          },
                                          {
                                              "FEAT_DESC": "Joseph Schmoe",
                                              "LIB_FEAT_ID": 100010
                                          },
                                          {
                                              "FEAT_DESC": "Joe Schmoe",
                                              "LIB_FEAT_ID": 100001
                                          }
                                      ]
                                  }
                              ],
                              "PHONE": [
                                  {
                                      "FEAT_DESC": "702-555-1212",
                                      "LIB_FEAT_ID": 100002,
                                      "FEAT_DESC_VALUES": [
                                          {
                                              "FEAT_DESC": "702-555-1212",
                                              "LIB_FEAT_ID": 100002
                                          }
                                      ]
                                  },
                                  {
                                      "FEAT_DESC": "702-555-1212",
                                      "LIB_FEAT_ID": 100002,
                                      "USAGE_TYPE": "HOME",
                                      "FEAT_DESC_VALUES": [
                                          {
                                              "FEAT_DESC": "702-555-1212",
                                              "LIB_FEAT_ID": 100002
                                          }
                                      ]
                                  },
                                  {
                                      "FEAT_DESC": "702-555-1313",
                                      "LIB_FEAT_ID": 100012,
                                      "USAGE_TYPE": "WORK",
                                      "FEAT_DESC_VALUES": [
                                          {
                                              "FEAT_DESC": "702-555-1313",
                                              "LIB_FEAT_ID": 100012
                                          }
                                      ]
                                  }
                              ]
                          },
                          "RECORD_SUMMARY": [
                              {
                                  "DATA_SOURCE": "TEST",
                                  "RECORD_COUNT": 3
                              }
                          ]
                      }
                  }
              }
          ],
          "SEARCH_STATISTICS": [
              {
                  "CANDIDATE_KEYS": {
                      "FEATURE_TYPES": [
                          {
                              "FTYPE_CODE": "NAME_KEY",
                              "FOUND": 2,
                              "NOT_FOUND": 0,
                              "GENERIC": 0
                          },
                          {
                              "FTYPE_CODE": "PHONE_KEY",
                              "FOUND": 1,
                              "NOT_FOUND": 0,
                              "GENERIC": 0
                          },
                          {
                              "FTYPE_CODE": "EMAIL_KEY",
                              "FOUND": 1,
                              "NOT_FOUND": 0,
                              "GENERIC": 0
                          },
                          {
                              "FTYPE_CODE": "NAMEPHONE_KEY",
                              "FOUND": 2,
                              "NOT_FOUND": 0,
                              "GENERIC": 0
                          }
                      ],
                      "SUMMARY": {
                          "FOUND": 6,
                          "NOT_FOUND": 0,
                          "GENERIC": 0
                      }
                  }
              }
          ]
      }

      Parameters:
      attributes - The search attributes defining the hypothetical record to match and/or relate to in order to obtain the search results.
      Returns:
      The resulting JSON String describing the result of the search.
      Throws:
      SzException - If a failure occurs.
      See Also:
    • whySearch

      String whySearch(String attributes, long entityId, String searchProfile, Set<SzFlag> flags) throws SzNotFoundException, SzException
      Describes the ways a set of search attributes relate to an entity.

      The default search profile is "SEARCH". Alternatively, "INGEST" may be used.

      If the specified search profile is null then the default will be used (alternatively, use whySearch(String, long, Set) as a convenience method to omit the parameter).

      The specified Set of SzFlag instances may contain any SzFlag value, but only flags belonging to the SzFlagUsageGroup.SZ_WHY_SEARCH_FLAGS group are guaranteed to be recognized (other SzFlag instances will be ignored unless they have equivalent bit flags to supported flags).

      NOTE: EnumSet offers an efficient means of constructing a Set of SzFlag.

      Usage:

      // How to determine why an entity was excluded from search results
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get the search attributes (varies by application)
          String searchAttributes =
                  """
                  {
                      "NAME_FULL": "Joe Schmoe",
                      "PHONE_NUMBER": "702-555-1212",
                      "EMAIL_ADDRESS": "joeschmoe@nowhere.com"
                  }
                  """;
      
          // get a search profile (varies by application)
          String searchProfile = getSearchProfile();
      
          // get the entities on which to operate (varies by application)
          long entityId = getWhySearchEntityId();
      
          // determine how the entities are related
          String results = engine.whySearch(searchAttributes,
                                            entityId,
                                            searchProfile,
                                            SZ_WHY_SEARCH_DEFAULT_FLAGS);
      
          // do something with the response JSON (varies by application)
          JsonObject jsonObject = Json.createReader(new StringReader(results)).readObject();
          JsonArray resultsArr = jsonObject.getJsonArray("WHY_RESULTS");
          for (JsonObject result : resultsArr.getValuesAs(JsonObject.class)) {
              long whyEntityId1 = result.getJsonNumber("ENTITY_ID").longValue();
      
              ...
          }
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Entity not found for entity ID.", e);
      
      } catch (SzException e) {
          // handle or rethrow the exception
          logError("Failed to perform why search.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "WHY_RESULTS": [
              {
                  "ENTITY_ID": 5,
                  "MATCH_INFO": {
                      "WHY_KEY": "",
                      "WHY_ERRULE_CODE": "",
                      "MATCH_LEVEL_CODE": "",
                      "CANDIDATE_KEYS": {
                      },
                      "FEATURE_SCORES": {
                      },
                      "DISCLOSED_RELATIONS": {
                      }
                  }
              }
          ],
          "SEARCH_REQUEST": {
              "JSON_DATA": "{\n    \"NAME_FULL\": \"Joe Schmoe\",\n    \"PHONE_NUMBER\": \"702-555-1212\",\n    \"EMAIL_ADDRESS\": \"joeschmoe@nowhere.com\"\n}\n",
              "SEARCH_PROFILE": "SEARCH",
              "FEATURES": {
                  "NAME": [
                      {
                          "LIB_FEAT_ID": 100001,
                          "FEAT_DESC": "Joe Schmoe",
                          "ATTRIBUTES": {
                              "NAME_FULL": "Joe Schmoe"
                          },
                          "USED_FOR_CAND": "N",
                          "USED_FOR_SCORING": "Y",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      }
                  ],
                  "PHONE": [
                      {
                          "LIB_FEAT_ID": 100002,
                          "FEAT_DESC": "702-555-1212",
                          "ATTRIBUTES": {
                              "PHONE_NUMBER": "702-555-1212"
                          },
                          "USED_FOR_CAND": "N",
                          "USED_FOR_SCORING": "Y",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      }
                  ],
                  "EMAIL": [
                      {
                          "LIB_FEAT_ID": 100003,
                          "FEAT_DESC": "joeschmoe@nowhere.com",
                          "ATTRIBUTES": {
                              "EMAIL_ADDRESS": "joeschmoe@nowhere.com"
                          },
                          "USED_FOR_CAND": "N",
                          "USED_FOR_SCORING": "Y",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      }
                  ],
                  "NAME_KEY": [
                      {
                          "LIB_FEAT_ID": 100004,
                          "FEAT_DESC": "JOE|XM",
                          "USED_FOR_CAND": "Y",
                          "USED_FOR_SCORING": "N",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      },
                      {
                          "LIB_FEAT_ID": 100005,
                          "FEAT_DESC": "JSF|XM",
                          "USED_FOR_CAND": "Y",
                          "USED_FOR_SCORING": "N",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      }
                  ],
                  "PHONE_KEY": [
                      {
                          "LIB_FEAT_ID": 100006,
                          "FEAT_DESC": "7025551212",
                          "USED_FOR_CAND": "Y",
                          "USED_FOR_SCORING": "N",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      }
                  ],
                  "EMAIL_KEY": [
                      {
                          "LIB_FEAT_ID": 100007,
                          "FEAT_DESC": "joeschmoe@NOWHERE.COM",
                          "USED_FOR_CAND": "Y",
                          "USED_FOR_SCORING": "N",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      }
                  ],
                  "NAMEPHONE_KEY": [
                      {
                          "LIB_FEAT_ID": 100008,
                          "FEAT_DESC": "JSF|XM|PHONE.PHONE_LAST_5=51212",
                          "USED_FOR_CAND": "Y",
                          "USED_FOR_SCORING": "N",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      },
                      {
                          "LIB_FEAT_ID": 100009,
                          "FEAT_DESC": "JOE|XM|PHONE.PHONE_LAST_5=51212",
                          "USED_FOR_CAND": "Y",
                          "USED_FOR_SCORING": "N",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      }
                  ]
              }
          },
          "SEARCH_STATISTICS": [
              {
                  "CANDIDATE_KEYS": {
                      "FEATURE_TYPES": [
                          {
                              "FTYPE_CODE": "NAME_KEY",
                              "FOUND": 0,
                              "NOT_FOUND": 2,
                              "GENERIC": 0
                          },
                          {
                              "FTYPE_CODE": "PHONE_KEY",
                              "FOUND": 0,
                              "NOT_FOUND": 1,
                              "GENERIC": 0
                          },
                          {
                              "FTYPE_CODE": "EMAIL_KEY",
                              "FOUND": 0,
                              "NOT_FOUND": 1,
                              "GENERIC": 0
                          },
                          {
                              "FTYPE_CODE": "NAMEPHONE_KEY",
                              "FOUND": 0,
                              "NOT_FOUND": 2,
                              "GENERIC": 0
                          }
                      ],
                      "SUMMARY": {
                          "FOUND": 0,
                          "NOT_FOUND": 6,
                          "GENERIC": 0
                      }
                  }
              }
          ],
          "ENTITIES": [
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 5
                  }
              }
          ]
      }

      Parameters:
      attributes - The search attributes defining the hypothetical record to match and/or relate to in order to obtain the search results.
      entityId - The entity ID identifying the entity to analyze against the search attribute criteria.
      searchProfile - The optional search profile identifier, or null if the default search profile should be used for the search.
      flags - The optional Set of SzFlag instances belonging to the SzFlagUsageGroup.SZ_WHY_SEARCH_FLAGS group t control how the operation is performed and the content of the response, or null to default to SzFlag.SZ_NO_FLAGS or SzFlag.SZ_WHY_SEARCH_DEFAULT_FLAGS for the default recommended flags.
      Returns:
      The resulting JSON String describing the result of the why analysis against the search criteria.
      Throws:
      SzNotFoundException - If no entity could be found with the specified entity ID.
      SzException - If a failure occurs.
      See Also:
    • whySearch

      default String whySearch(String attributes, long entityId, String searchProfile) throws SzNotFoundException, SzException
      Convenience method for calling whySearch(String, long, String, Set) using SzFlag.SZ_WHY_SEARCH_DEFAULT_FLAGS as the value for the flags parameter. See the whySearch(String, long, String, Set) documentation for details.

      Usage:

      // How to determine why an entity was excluded from search results
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get the search attributes (varies by application)
          String searchAttributes =
                  """
                  {
                      "NAME_FULL": "Joe Schmoe",
                      "PHONE_NUMBER": "702-555-1212",
                      "EMAIL_ADDRESS": "joeschmoe@nowhere.com"
                  }
                  """;
      
          // get the entities on which to operate (varies by application)
          long entityId = getWhySearchEntityId();
      
          // determine how the entities are related
          String results = engine.whySearch(searchAttributes, entityId);
      
          // do something with the response JSON (varies by application)
          JsonObject jsonObject = Json.createReader(new StringReader(results)).readObject();
          JsonArray resultsArr = jsonObject.getJsonArray("WHY_RESULTS");
          for (JsonObject result : resultsArr.getValuesAs(JsonObject.class)) {
              long whyEntityId1 = result.getJsonNumber("ENTITY_ID").longValue();
      
              ...
          }
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Entity not found for entity ID.", e);
      
      } catch (SzException e) {
          // handle or rethrow the exception
          logError("Failed to perform why search.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "WHY_RESULTS": [
              {
                  "ENTITY_ID": 5,
                  "MATCH_INFO": {
                      "WHY_KEY": "",
                      "WHY_ERRULE_CODE": "",
                      "MATCH_LEVEL_CODE": "",
                      "CANDIDATE_KEYS": {
                      },
                      "FEATURE_SCORES": {
                      },
                      "DISCLOSED_RELATIONS": {
                      }
                  }
              }
          ],
          "SEARCH_REQUEST": {
              "JSON_DATA": "{\n    \"NAME_FULL\": \"Joe Schmoe\",\n    \"PHONE_NUMBER\": \"702-555-1212\",\n    \"EMAIL_ADDRESS\": \"joeschmoe@nowhere.com\"\n}\n",
              "SEARCH_PROFILE": "",
              "FEATURES": {
                  "NAME": [
                      {
                          "LIB_FEAT_ID": 100001,
                          "FEAT_DESC": "Joe Schmoe",
                          "ATTRIBUTES": {
                              "NAME_FULL": "Joe Schmoe"
                          },
                          "USED_FOR_CAND": "N",
                          "USED_FOR_SCORING": "Y",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      }
                  ],
                  "PHONE": [
                      {
                          "LIB_FEAT_ID": 100002,
                          "FEAT_DESC": "702-555-1212",
                          "ATTRIBUTES": {
                              "PHONE_NUMBER": "702-555-1212"
                          },
                          "USED_FOR_CAND": "N",
                          "USED_FOR_SCORING": "Y",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      }
                  ],
                  "EMAIL": [
                      {
                          "LIB_FEAT_ID": 100003,
                          "FEAT_DESC": "joeschmoe@nowhere.com",
                          "ATTRIBUTES": {
                              "EMAIL_ADDRESS": "joeschmoe@nowhere.com"
                          },
                          "USED_FOR_CAND": "N",
                          "USED_FOR_SCORING": "Y",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      }
                  ],
                  "NAME_KEY": [
                      {
                          "LIB_FEAT_ID": 100004,
                          "FEAT_DESC": "JOE|XM",
                          "USED_FOR_CAND": "Y",
                          "USED_FOR_SCORING": "N",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      },
                      {
                          "LIB_FEAT_ID": 100005,
                          "FEAT_DESC": "JSF|XM",
                          "USED_FOR_CAND": "Y",
                          "USED_FOR_SCORING": "N",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      }
                  ],
                  "PHONE_KEY": [
                      {
                          "LIB_FEAT_ID": 100006,
                          "FEAT_DESC": "7025551212",
                          "USED_FOR_CAND": "Y",
                          "USED_FOR_SCORING": "N",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      }
                  ],
                  "EMAIL_KEY": [
                      {
                          "LIB_FEAT_ID": 100007,
                          "FEAT_DESC": "joeschmoe@NOWHERE.COM",
                          "USED_FOR_CAND": "Y",
                          "USED_FOR_SCORING": "N",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      }
                  ],
                  "NAMEPHONE_KEY": [
                      {
                          "LIB_FEAT_ID": 100008,
                          "FEAT_DESC": "JSF|XM|PHONE.PHONE_LAST_5=51212",
                          "USED_FOR_CAND": "Y",
                          "USED_FOR_SCORING": "N",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      },
                      {
                          "LIB_FEAT_ID": 100009,
                          "FEAT_DESC": "JOE|XM|PHONE.PHONE_LAST_5=51212",
                          "USED_FOR_CAND": "Y",
                          "USED_FOR_SCORING": "N",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      }
                  ]
              }
          },
          "SEARCH_STATISTICS": [
              {
                  "CANDIDATE_KEYS": {
                      "FEATURE_TYPES": [
                          {
                              "FTYPE_CODE": "NAME_KEY",
                              "FOUND": 0,
                              "NOT_FOUND": 2,
                              "GENERIC": 0
                          },
                          {
                              "FTYPE_CODE": "PHONE_KEY",
                              "FOUND": 0,
                              "NOT_FOUND": 1,
                              "GENERIC": 0
                          },
                          {
                              "FTYPE_CODE": "EMAIL_KEY",
                              "FOUND": 0,
                              "NOT_FOUND": 1,
                              "GENERIC": 0
                          },
                          {
                              "FTYPE_CODE": "NAMEPHONE_KEY",
                              "FOUND": 0,
                              "NOT_FOUND": 2,
                              "GENERIC": 0
                          }
                      ],
                      "SUMMARY": {
                          "FOUND": 0,
                          "NOT_FOUND": 6,
                          "GENERIC": 0
                      }
                  }
              }
          ],
          "ENTITIES": [
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 5
                  }
              }
          ]
      }

      Parameters:
      attributes - The search attributes defining the hypothetical record to match and/or relate to in order to obtain the search results.
      entityId - The entity ID identifying the entity to analyze against the search attribute criteria.
      searchProfile - The optional search profile identifier, or null if the default search profile should be used for the search.
      Returns:
      The resulting JSON String describing the result of the why analysis against the search criteria.
      Throws:
      SzNotFoundException - If no entity could be found with the specified entity ID.
      SzException - If a failure occurs.
      See Also:
    • whySearch

      default String whySearch(String attributes, long entityId, Set<SzFlag> flags) throws SzNotFoundException, SzException
      Convenience method for calling whySearch(String, long, String, Set) with a null value for the search profile parameter. See the whySearch(String, long, String, Set) documentation for details.

      Usage:

      // How to determine why an entity was excluded from search results
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get the search attributes (varies by application)
          String searchAttributes =
                  """
                  {
                      "NAME_FULL": "Joe Schmoe",
                      "PHONE_NUMBER": "702-555-1212",
                      "EMAIL_ADDRESS": "joeschmoe@nowhere.com"
                  }
                  """;
      
          // get the entities on which to operate (varies by application)
          long entityId = getWhySearchEntityId();
      
          // determine how the entities are related
          String results = engine.whySearch(searchAttributes,
                                            entityId,
                                            SZ_WHY_SEARCH_DEFAULT_FLAGS);
      
          // do something with the response JSON (varies by application)
          JsonObject jsonObject = Json.createReader(new StringReader(results)).readObject();
          JsonArray resultsArr = jsonObject.getJsonArray("WHY_RESULTS");
          for (JsonObject result : resultsArr.getValuesAs(JsonObject.class)) {
              long whyEntityId1 = result.getJsonNumber("ENTITY_ID").longValue();
      
              ...
          }
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Entity not found for entity ID.", e);
      
      } catch (SzException e) {
          // handle or rethrow the exception
          logError("Failed to perform why search.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "WHY_RESULTS": [
              {
                  "ENTITY_ID": 5,
                  "MATCH_INFO": {
                      "WHY_KEY": "",
                      "WHY_ERRULE_CODE": "",
                      "MATCH_LEVEL_CODE": "",
                      "CANDIDATE_KEYS": {
                      },
                      "FEATURE_SCORES": {
                      },
                      "DISCLOSED_RELATIONS": {
                      }
                  }
              }
          ],
          "SEARCH_REQUEST": {
              "JSON_DATA": "{\n    \"NAME_FULL\": \"Joe Schmoe\",\n    \"PHONE_NUMBER\": \"702-555-1212\",\n    \"EMAIL_ADDRESS\": \"joeschmoe@nowhere.com\"\n}\n",
              "SEARCH_PROFILE": "",
              "FEATURES": {
                  "NAME": [
                      {
                          "LIB_FEAT_ID": 100001,
                          "FEAT_DESC": "Joe Schmoe",
                          "ATTRIBUTES": {
                              "NAME_FULL": "Joe Schmoe"
                          },
                          "USED_FOR_CAND": "N",
                          "USED_FOR_SCORING": "Y",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      }
                  ],
                  "PHONE": [
                      {
                          "LIB_FEAT_ID": 100002,
                          "FEAT_DESC": "702-555-1212",
                          "ATTRIBUTES": {
                              "PHONE_NUMBER": "702-555-1212"
                          },
                          "USED_FOR_CAND": "N",
                          "USED_FOR_SCORING": "Y",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      }
                  ],
                  "EMAIL": [
                      {
                          "LIB_FEAT_ID": 100003,
                          "FEAT_DESC": "joeschmoe@nowhere.com",
                          "ATTRIBUTES": {
                              "EMAIL_ADDRESS": "joeschmoe@nowhere.com"
                          },
                          "USED_FOR_CAND": "N",
                          "USED_FOR_SCORING": "Y",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      }
                  ],
                  "NAME_KEY": [
                      {
                          "LIB_FEAT_ID": 100004,
                          "FEAT_DESC": "JOE|XM",
                          "USED_FOR_CAND": "Y",
                          "USED_FOR_SCORING": "N",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      },
                      {
                          "LIB_FEAT_ID": 100005,
                          "FEAT_DESC": "JSF|XM",
                          "USED_FOR_CAND": "Y",
                          "USED_FOR_SCORING": "N",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      }
                  ],
                  "PHONE_KEY": [
                      {
                          "LIB_FEAT_ID": 100006,
                          "FEAT_DESC": "7025551212",
                          "USED_FOR_CAND": "Y",
                          "USED_FOR_SCORING": "N",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      }
                  ],
                  "EMAIL_KEY": [
                      {
                          "LIB_FEAT_ID": 100007,
                          "FEAT_DESC": "joeschmoe@NOWHERE.COM",
                          "USED_FOR_CAND": "Y",
                          "USED_FOR_SCORING": "N",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      }
                  ],
                  "NAMEPHONE_KEY": [
                      {
                          "LIB_FEAT_ID": 100008,
                          "FEAT_DESC": "JSF|XM|PHONE.PHONE_LAST_5=51212",
                          "USED_FOR_CAND": "Y",
                          "USED_FOR_SCORING": "N",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      },
                      {
                          "LIB_FEAT_ID": 100009,
                          "FEAT_DESC": "JOE|XM|PHONE.PHONE_LAST_5=51212",
                          "USED_FOR_CAND": "Y",
                          "USED_FOR_SCORING": "N",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      }
                  ]
              }
          },
          "SEARCH_STATISTICS": [
              {
                  "CANDIDATE_KEYS": {
                      "FEATURE_TYPES": [
                          {
                              "FTYPE_CODE": "NAME_KEY",
                              "FOUND": 0,
                              "NOT_FOUND": 2,
                              "GENERIC": 0
                          },
                          {
                              "FTYPE_CODE": "PHONE_KEY",
                              "FOUND": 0,
                              "NOT_FOUND": 1,
                              "GENERIC": 0
                          },
                          {
                              "FTYPE_CODE": "EMAIL_KEY",
                              "FOUND": 0,
                              "NOT_FOUND": 1,
                              "GENERIC": 0
                          },
                          {
                              "FTYPE_CODE": "NAMEPHONE_KEY",
                              "FOUND": 0,
                              "NOT_FOUND": 2,
                              "GENERIC": 0
                          }
                      ],
                      "SUMMARY": {
                          "FOUND": 0,
                          "NOT_FOUND": 6,
                          "GENERIC": 0
                      }
                  }
              }
          ],
          "ENTITIES": [
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 5
                  }
              }
          ]
      }

      Parameters:
      attributes - The search attributes defining the hypothetical record to match and/or relate to in order to obtain the search results.
      entityId - The entity ID identifying the entity to analyze against the search attribute criteria.
      flags - The optional Set of SzFlag instances belonging to the SzFlagUsageGroup.SZ_WHY_SEARCH_FLAGS group t control how the operation is performed and the content of the response, or null to default to SzFlag.SZ_NO_FLAGS or SzFlag.SZ_WHY_SEARCH_DEFAULT_FLAGS for the default recommended flags.
      Returns:
      The resulting JSON String describing the result of the why analysis against the search criteria.
      Throws:
      SzNotFoundException - If no entity could be found with the specified entity ID.
      SzException - If a failure occurs.
      See Also:
    • whySearch

      default String whySearch(String attributes, long entityId) throws SzNotFoundException, SzException
      Convenience method for calling whySearch(String, long, String, Set) with a null value for the search profile parameter and SzFlag.SZ_WHY_SEARCH_DEFAULT_FLAGS as the value for the flags parameter. See the whySearch(String, long, String, Set) documentation for details.

      Usage:

      // How to determine why an entity was excluded from search results
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get the search attributes (varies by application)
          String searchAttributes =
                  """
                  {
                      "NAME_FULL": "Joe Schmoe",
                      "PHONE_NUMBER": "702-555-1212",
                      "EMAIL_ADDRESS": "joeschmoe@nowhere.com"
                  }
                  """;
      
          // get the entities on which to operate (varies by application)
          long entityId = getWhySearchEntityId();
      
          // determine how the entities are related
          String results = engine.whySearch(searchAttributes, entityId);
      
          // do something with the response JSON (varies by application)
          JsonObject jsonObject = Json.createReader(new StringReader(results)).readObject();
          JsonArray resultsArr = jsonObject.getJsonArray("WHY_RESULTS");
          for (JsonObject result : resultsArr.getValuesAs(JsonObject.class)) {
              long whyEntityId1 = result.getJsonNumber("ENTITY_ID").longValue();
      
              ...
          }
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Entity not found for entity ID.", e);
      
      } catch (SzException e) {
          // handle or rethrow the exception
          logError("Failed to perform why search.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "WHY_RESULTS": [
              {
                  "ENTITY_ID": 5,
                  "MATCH_INFO": {
                      "WHY_KEY": "",
                      "WHY_ERRULE_CODE": "",
                      "MATCH_LEVEL_CODE": "",
                      "CANDIDATE_KEYS": {
                      },
                      "FEATURE_SCORES": {
                      },
                      "DISCLOSED_RELATIONS": {
                      }
                  }
              }
          ],
          "SEARCH_REQUEST": {
              "JSON_DATA": "{\n    \"NAME_FULL\": \"Joe Schmoe\",\n    \"PHONE_NUMBER\": \"702-555-1212\",\n    \"EMAIL_ADDRESS\": \"joeschmoe@nowhere.com\"\n}\n",
              "SEARCH_PROFILE": "",
              "FEATURES": {
                  "NAME": [
                      {
                          "LIB_FEAT_ID": 100001,
                          "FEAT_DESC": "Joe Schmoe",
                          "ATTRIBUTES": {
                              "NAME_FULL": "Joe Schmoe"
                          },
                          "USED_FOR_CAND": "N",
                          "USED_FOR_SCORING": "Y",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      }
                  ],
                  "PHONE": [
                      {
                          "LIB_FEAT_ID": 100002,
                          "FEAT_DESC": "702-555-1212",
                          "ATTRIBUTES": {
                              "PHONE_NUMBER": "702-555-1212"
                          },
                          "USED_FOR_CAND": "N",
                          "USED_FOR_SCORING": "Y",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      }
                  ],
                  "EMAIL": [
                      {
                          "LIB_FEAT_ID": 100003,
                          "FEAT_DESC": "joeschmoe@nowhere.com",
                          "ATTRIBUTES": {
                              "EMAIL_ADDRESS": "joeschmoe@nowhere.com"
                          },
                          "USED_FOR_CAND": "N",
                          "USED_FOR_SCORING": "Y",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      }
                  ],
                  "NAME_KEY": [
                      {
                          "LIB_FEAT_ID": 100004,
                          "FEAT_DESC": "JOE|XM",
                          "USED_FOR_CAND": "Y",
                          "USED_FOR_SCORING": "N",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      },
                      {
                          "LIB_FEAT_ID": 100005,
                          "FEAT_DESC": "JSF|XM",
                          "USED_FOR_CAND": "Y",
                          "USED_FOR_SCORING": "N",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      }
                  ],
                  "PHONE_KEY": [
                      {
                          "LIB_FEAT_ID": 100006,
                          "FEAT_DESC": "7025551212",
                          "USED_FOR_CAND": "Y",
                          "USED_FOR_SCORING": "N",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      }
                  ],
                  "EMAIL_KEY": [
                      {
                          "LIB_FEAT_ID": 100007,
                          "FEAT_DESC": "joeschmoe@NOWHERE.COM",
                          "USED_FOR_CAND": "Y",
                          "USED_FOR_SCORING": "N",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      }
                  ],
                  "NAMEPHONE_KEY": [
                      {
                          "LIB_FEAT_ID": 100008,
                          "FEAT_DESC": "JSF|XM|PHONE.PHONE_LAST_5=51212",
                          "USED_FOR_CAND": "Y",
                          "USED_FOR_SCORING": "N",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      },
                      {
                          "LIB_FEAT_ID": 100009,
                          "FEAT_DESC": "JOE|XM|PHONE.PHONE_LAST_5=51212",
                          "USED_FOR_CAND": "Y",
                          "USED_FOR_SCORING": "N",
                          "ENTITY_COUNT": 1,
                          "CANDIDATE_CAP_REACHED": "N",
                          "SCORING_CAP_REACHED": "N"
                      }
                  ]
              }
          },
          "SEARCH_STATISTICS": [
              {
                  "CANDIDATE_KEYS": {
                      "FEATURE_TYPES": [
                          {
                              "FTYPE_CODE": "NAME_KEY",
                              "FOUND": 0,
                              "NOT_FOUND": 2,
                              "GENERIC": 0
                          },
                          {
                              "FTYPE_CODE": "PHONE_KEY",
                              "FOUND": 0,
                              "NOT_FOUND": 1,
                              "GENERIC": 0
                          },
                          {
                              "FTYPE_CODE": "EMAIL_KEY",
                              "FOUND": 0,
                              "NOT_FOUND": 1,
                              "GENERIC": 0
                          },
                          {
                              "FTYPE_CODE": "NAMEPHONE_KEY",
                              "FOUND": 0,
                              "NOT_FOUND": 2,
                              "GENERIC": 0
                          }
                      ],
                      "SUMMARY": {
                          "FOUND": 0,
                          "NOT_FOUND": 6,
                          "GENERIC": 0
                      }
                  }
              }
          ],
          "ENTITIES": [
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 5
                  }
              }
          ]
      }

      Parameters:
      attributes - The search attributes defining the hypothetical record to match and/or relate to in order to obtain the search results.
      entityId - The entity ID identifying the entity to analyze against the search attribute criteria.
      Returns:
      The resulting JSON String describing the result of the why analysis against the search criteria.
      Throws:
      SzNotFoundException - If no entity could be found with the specified entity ID.
      SzException - If a failure occurs.
      See Also:
    • getEntity

      String getEntity(long entityId, Set<SzFlag> flags) throws SzNotFoundException, SzException
      Retrieves information about an entity, specified by entity ID.

      The specified Set of SzFlag instances may contain any SzFlag value, but only flags belonging to the SzFlagUsageGroup.SZ_ENTITY_FLAGS group are guaranteed to be recognized (other SzFlag instances will be ignored unless they have equivalent bit flags).

      NOTE: EnumSet offers an efficient means of constructing a Set of SzFlag.

      Usage:

      // How to retrieve an entity via its entity ID
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get the ID of an entity to retrieve (varies by application)
          long entityId = getEntityId();
      
          // retrieve the entity by entity ID
          String result = engine.getEntity(entityId, SZ_ENTITY_DEFAULT_FLAGS);
      
          // do something with the response JSON (varies by application)
          JsonObject  jsonObject  = Json.createReader(new StringReader(result)).readObject();
          JsonObject  entity      = jsonObject.getJsonObject("RESOLVED_ENTITY");
          String      entityName  = entity.getString("ENTITY_NAME");
      
          ...
      
          if (jsonObject.containsKey("RECORDS")) {
              JsonArray recordArr = jsonObject.getJsonArray("RECORDS");
              for (JsonObject record : recordArr.getValuesAs(JsonObject.class)) {
                  String dataSource = record.getString("DATA_SOURCE");
                  String recordId   = record.getString("RECORD_ID");
      
                  ...
              }
          }
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Entity not found for entity ID.", e);
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to retrieve entity by entity ID.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "RESOLVED_ENTITY": {
              "ENTITY_ID": 100002,
              "ENTITY_NAME": "Joseph W Schmoe",
              "FEATURES": {
                  "ADDRESS": [
                      {
                          "FEAT_DESC": "101 Main St.; Las Vegas, NV 89101",
                          "LIB_FEAT_ID": 100011,
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "101 Main St.; Las Vegas, NV 89101",
                                  "LIB_FEAT_ID": 100011
                              }
                          ]
                      }
                  ],
                  "EMAIL": [
                      {
                          "FEAT_DESC": "joeschmoe@nowhere.com",
                          "LIB_FEAT_ID": 100003,
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "joeschmoe@nowhere.com",
                                  "LIB_FEAT_ID": 100003
                              }
                          ]
                      }
                  ],
                  "NAME": [
                      {
                          "FEAT_DESC": "Joseph W Schmoe",
                          "LIB_FEAT_ID": 100021,
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "Joseph W Schmoe",
                                  "LIB_FEAT_ID": 100021
                              },
                              {
                                  "FEAT_DESC": "Joseph Schmoe",
                                  "LIB_FEAT_ID": 100010
                              },
                              {
                                  "FEAT_DESC": "Joe Schmoe",
                                  "LIB_FEAT_ID": 100001
                              }
                          ]
                      }
                  ],
                  "PHONE": [
                      {
                          "FEAT_DESC": "702-555-1212",
                          "LIB_FEAT_ID": 100002,
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "702-555-1212",
                                  "LIB_FEAT_ID": 100002
                              }
                          ]
                      },
                      {
                          "FEAT_DESC": "702-555-1212",
                          "LIB_FEAT_ID": 100002,
                          "USAGE_TYPE": "HOME",
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "702-555-1212",
                                  "LIB_FEAT_ID": 100002
                              }
                          ]
                      },
                      {
                          "FEAT_DESC": "702-555-1313",
                          "LIB_FEAT_ID": 100012,
                          "USAGE_TYPE": "WORK",
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "702-555-1313",
                                  "LIB_FEAT_ID": 100012
                              }
                          ]
                      }
                  ]
              },
              "RECORD_SUMMARY": [
                  {
                      "DATA_SOURCE": "TEST",
                      "RECORD_COUNT": 3
                  }
              ],
              "RECORDS": [
                  {
                      "DATA_SOURCE": "TEST",
                      "RECORD_ID": "ABC123",
                      "INTERNAL_ID": 100002,
                      "MATCH_KEY": "",
                      "MATCH_LEVEL_CODE": "",
                      "ERRULE_CODE": ""
                  },
                  {
                      "DATA_SOURCE": "TEST",
                      "RECORD_ID": "XYZ987",
                      "INTERNAL_ID": 100003,
                      "MATCH_KEY": "+NAME+EMAIL",
                      "MATCH_LEVEL_CODE": "RESOLVED",
                      "ERRULE_CODE": "SF1_CNAME"
                  },
                  {
                      "DATA_SOURCE": "TEST",
                      "RECORD_ID": "ZYX789",
                      "INTERNAL_ID": 100004,
                      "MATCH_KEY": "+NAME+ADDRESS+PHONE",
                      "MATCH_LEVEL_CODE": "RESOLVED",
                      "ERRULE_CODE": "MFF_CNAME"
                  }
              ]
          },
          "RELATED_ENTITIES": [
          ]
      }

      Parameters:
      entityId - The entity ID identifying the entity to retrieve.
      flags - The optional Set of SzFlag instances belonging to the SzFlagUsageGroup.SZ_ENTITY_FLAGS group to control how the operation is performed and the content of the response, or null to default to SzFlag.SZ_NO_FLAGS or SzFlag.SZ_ENTITY_DEFAULT_FLAGS for the default recommended flags.
      Returns:
      The JSON String describing the entity.
      Throws:
      SzNotFoundException - If no entity could be found with the specified entity ID.
      SzException - If a failure occurs.
      See Also:
    • getEntity

      default String getEntity(long entityId) throws SzNotFoundException, SzException
      Convenience method for calling getEntity(long,Set) using SzFlag.SZ_ENTITY_DEFAULT_FLAGS as the value for theflags parameter. See the getEntity(long, Set) documentation for details.

      Usage:

      // How to retrieve an entity via its entity ID
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get the ID of an entity to retrieve (varies by application)
          long entityId = getEntityId();
      
          // retrieve the entity by entity ID
          String result = engine.getEntity(entityId);
      
          // do something with the response JSON (varies by application)
          JsonObject  jsonObject  = Json.createReader(new StringReader(result)).readObject();
          JsonObject  entity      = jsonObject.getJsonObject("RESOLVED_ENTITY");
          String      entityName  = entity.getString("ENTITY_NAME");
      
          ...
      
          if (jsonObject.containsKey("RECORDS")) {
              JsonArray recordArr = jsonObject.getJsonArray("RECORDS");
              for (JsonObject record : recordArr.getValuesAs(JsonObject.class)) {
                  String dataSource = record.getString("DATA_SOURCE");
                  String recordId   = record.getString("RECORD_ID");
      
                  ...
              }
          }
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Entity not found for entity ID.", e);
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to retrieve entity by entity ID.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "RESOLVED_ENTITY": {
              "ENTITY_ID": 100002,
              "ENTITY_NAME": "Joseph W Schmoe",
              "FEATURES": {
                  "ADDRESS": [
                      {
                          "FEAT_DESC": "101 Main St.; Las Vegas, NV 89101",
                          "LIB_FEAT_ID": 100011,
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "101 Main St.; Las Vegas, NV 89101",
                                  "LIB_FEAT_ID": 100011
                              }
                          ]
                      }
                  ],
                  "EMAIL": [
                      {
                          "FEAT_DESC": "joeschmoe@nowhere.com",
                          "LIB_FEAT_ID": 100003,
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "joeschmoe@nowhere.com",
                                  "LIB_FEAT_ID": 100003
                              }
                          ]
                      }
                  ],
                  "NAME": [
                      {
                          "FEAT_DESC": "Joseph W Schmoe",
                          "LIB_FEAT_ID": 100021,
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "Joseph W Schmoe",
                                  "LIB_FEAT_ID": 100021
                              },
                              {
                                  "FEAT_DESC": "Joseph Schmoe",
                                  "LIB_FEAT_ID": 100010
                              },
                              {
                                  "FEAT_DESC": "Joe Schmoe",
                                  "LIB_FEAT_ID": 100001
                              }
                          ]
                      }
                  ],
                  "PHONE": [
                      {
                          "FEAT_DESC": "702-555-1212",
                          "LIB_FEAT_ID": 100002,
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "702-555-1212",
                                  "LIB_FEAT_ID": 100002
                              }
                          ]
                      },
                      {
                          "FEAT_DESC": "702-555-1212",
                          "LIB_FEAT_ID": 100002,
                          "USAGE_TYPE": "HOME",
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "702-555-1212",
                                  "LIB_FEAT_ID": 100002
                              }
                          ]
                      },
                      {
                          "FEAT_DESC": "702-555-1313",
                          "LIB_FEAT_ID": 100012,
                          "USAGE_TYPE": "WORK",
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "702-555-1313",
                                  "LIB_FEAT_ID": 100012
                              }
                          ]
                      }
                  ]
              },
              "RECORD_SUMMARY": [
                  {
                      "DATA_SOURCE": "TEST",
                      "RECORD_COUNT": 3
                  }
              ],
              "RECORDS": [
                  {
                      "DATA_SOURCE": "TEST",
                      "RECORD_ID": "ABC123",
                      "INTERNAL_ID": 100002,
                      "MATCH_KEY": "",
                      "MATCH_LEVEL_CODE": "",
                      "ERRULE_CODE": ""
                  },
                  {
                      "DATA_SOURCE": "TEST",
                      "RECORD_ID": "XYZ987",
                      "INTERNAL_ID": 100003,
                      "MATCH_KEY": "+NAME+EMAIL",
                      "MATCH_LEVEL_CODE": "RESOLVED",
                      "ERRULE_CODE": "SF1_CNAME"
                  },
                  {
                      "DATA_SOURCE": "TEST",
                      "RECORD_ID": "ZYX789",
                      "INTERNAL_ID": 100004,
                      "MATCH_KEY": "+NAME+ADDRESS+PHONE",
                      "MATCH_LEVEL_CODE": "RESOLVED",
                      "ERRULE_CODE": "MFF_CNAME"
                  }
              ]
          },
          "RELATED_ENTITIES": [
          ]
      }

      Parameters:
      entityId - The entity ID identifying the entity to retrieve.
      Returns:
      The JSON String describing the entity.
      Throws:
      SzNotFoundException - If no entity could be found with the specified entity ID.
      SzException - If a failure occurs.
      See Also:
    • getEntity

      Retrieves information about an entity, specified by record ID.

      The specified Set of SzFlag instances may contain any SzFlag value, but only flags belonging to the SzFlagUsageGroup.SZ_ENTITY_FLAGS group are guaranteed to be recognized (other SzFlag instances will be ignored unless they have equivalent bit flags).

      NOTE: EnumSet offers an efficient means of constructing a Set of SzFlag.

      Usage:

      // How to retrieve an entity via its record key
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // retrieve the entity by record key
          String result = engine.getEntity(
              SzRecordKey.of("TEST", "ABC123"),
              SZ_ENTITY_DEFAULT_FLAGS);
      
          // do something with the response JSON (varies by application)
          JsonObject  jsonObject  = Json.createReader(new StringReader(result)).readObject();
          JsonObject  entity      = jsonObject.getJsonObject("RESOLVED_ENTITY");
          String      entityName  = entity.getString("ENTITY_NAME");
      
          ...
      
          if (jsonObject.containsKey("RECORDS")) {
              JsonArray recordArr = jsonObject.getJsonArray("RECORDS");
              for (JsonObject record : recordArr.getValuesAs(JsonObject.class)) {
                  String dataSource = record.getString("DATA_SOURCE");
                  String recordId   = record.getString("RECORD_ID");
      
                  ...
              }
          }
      
      } catch (SzUnknownDataSourceException e) {
          // handle the unknown data source exception
          logError("Expected data source is not configured.", e);
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Entity not found for record key.", e);
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to retrieve entity by record key.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "RESOLVED_ENTITY": {
              "ENTITY_ID": 100002,
              "ENTITY_NAME": "Joseph W Schmoe",
              "FEATURES": {
                  "ADDRESS": [
                      {
                          "FEAT_DESC": "101 Main St.; Las Vegas, NV 89101",
                          "LIB_FEAT_ID": 100011,
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "101 Main St.; Las Vegas, NV 89101",
                                  "LIB_FEAT_ID": 100011
                              }
                          ]
                      }
                  ],
                  "EMAIL": [
                      {
                          "FEAT_DESC": "joeschmoe@nowhere.com",
                          "LIB_FEAT_ID": 100003,
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "joeschmoe@nowhere.com",
                                  "LIB_FEAT_ID": 100003
                              }
                          ]
                      }
                  ],
                  "NAME": [
                      {
                          "FEAT_DESC": "Joseph W Schmoe",
                          "LIB_FEAT_ID": 100021,
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "Joseph W Schmoe",
                                  "LIB_FEAT_ID": 100021
                              },
                              {
                                  "FEAT_DESC": "Joseph Schmoe",
                                  "LIB_FEAT_ID": 100010
                              },
                              {
                                  "FEAT_DESC": "Joe Schmoe",
                                  "LIB_FEAT_ID": 100001
                              }
                          ]
                      }
                  ],
                  "PHONE": [
                      {
                          "FEAT_DESC": "702-555-1212",
                          "LIB_FEAT_ID": 100002,
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "702-555-1212",
                                  "LIB_FEAT_ID": 100002
                              }
                          ]
                      },
                      {
                          "FEAT_DESC": "702-555-1212",
                          "LIB_FEAT_ID": 100002,
                          "USAGE_TYPE": "HOME",
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "702-555-1212",
                                  "LIB_FEAT_ID": 100002
                              }
                          ]
                      },
                      {
                          "FEAT_DESC": "702-555-1313",
                          "LIB_FEAT_ID": 100012,
                          "USAGE_TYPE": "WORK",
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "702-555-1313",
                                  "LIB_FEAT_ID": 100012
                              }
                          ]
                      }
                  ]
              },
              "RECORD_SUMMARY": [
                  {
                      "DATA_SOURCE": "TEST",
                      "RECORD_COUNT": 3
                  }
              ],
              "RECORDS": [
                  {
                      "DATA_SOURCE": "TEST",
                      "RECORD_ID": "ABC123",
                      "INTERNAL_ID": 100002,
                      "MATCH_KEY": "",
                      "MATCH_LEVEL_CODE": "",
                      "ERRULE_CODE": ""
                  },
                  {
                      "DATA_SOURCE": "TEST",
                      "RECORD_ID": "XYZ987",
                      "INTERNAL_ID": 100003,
                      "MATCH_KEY": "+NAME+EMAIL",
                      "MATCH_LEVEL_CODE": "RESOLVED",
                      "ERRULE_CODE": "SF1_CNAME"
                  },
                  {
                      "DATA_SOURCE": "TEST",
                      "RECORD_ID": "ZYX789",
                      "INTERNAL_ID": 100004,
                      "MATCH_KEY": "+NAME+ADDRESS+PHONE",
                      "MATCH_LEVEL_CODE": "RESOLVED",
                      "ERRULE_CODE": "MFF_CNAME"
                  }
              ]
          },
          "RELATED_ENTITIES": [
          ]
      }

      Parameters:
      recordKey - The non-null SzRecordKey that specifies the data source code and record Id of the constituent record for the entity to retrieve.
      flags - The optional Set of SzFlag instances belonging to the SzFlagUsageGroup.SZ_ENTITY_FLAGS group to control how the operation is performed and the content of the response, or null to default to SzFlag.SZ_NO_FLAGS or SzFlag.SZ_ENTITY_DEFAULT_FLAGS for the default recommended flags.
      Returns:
      The JSON String describing the entity.
      Throws:
      SzUnknownDataSourceException - If an unrecognized data source code is specified.
      SzNotFoundException - If no entity could be found with the specified entity ID.
      SzException - If a failure occurs.
      See Also:
    • getEntity

      Convenience method for calling getEntity(SzRecordKey,Set) using SzFlag.SZ_ENTITY_DEFAULT_FLAGS as the value for the flags parameter. See the getEntity(SzRecordKey, Set) documentation for details.

      Usage:

      // How to retrieve an entity via its record key
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // retrieve the entity by record key
          String result = engine.getEntity(
              SzRecordKey.of("TEST", "ABC123"));
      
          // do something with the response JSON (varies by application)
          JsonObject  jsonObject  = Json.createReader(new StringReader(result)).readObject();
          JsonObject  entity      = jsonObject.getJsonObject("RESOLVED_ENTITY");
          String      entityName  = entity.getString("ENTITY_NAME");
      
          ...
      
          if (jsonObject.containsKey("RECORDS")) {
              JsonArray recordArr = jsonObject.getJsonArray("RECORDS");
              for (JsonObject record : recordArr.getValuesAs(JsonObject.class)) {
                  String dataSource = record.getString("DATA_SOURCE");
                  String recordId   = record.getString("RECORD_ID");
      
                  ...
              }
          }
      
      } catch (SzUnknownDataSourceException e) {
          // handle the unknown data source exception
          logError("Expected data source is not configured.", e);
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Entity not found for record key.", e);
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to retrieve entity by record key.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "RESOLVED_ENTITY": {
              "ENTITY_ID": 100002,
              "ENTITY_NAME": "Joseph W Schmoe",
              "FEATURES": {
                  "ADDRESS": [
                      {
                          "FEAT_DESC": "101 Main St.; Las Vegas, NV 89101",
                          "LIB_FEAT_ID": 100011,
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "101 Main St.; Las Vegas, NV 89101",
                                  "LIB_FEAT_ID": 100011
                              }
                          ]
                      }
                  ],
                  "EMAIL": [
                      {
                          "FEAT_DESC": "joeschmoe@nowhere.com",
                          "LIB_FEAT_ID": 100003,
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "joeschmoe@nowhere.com",
                                  "LIB_FEAT_ID": 100003
                              }
                          ]
                      }
                  ],
                  "NAME": [
                      {
                          "FEAT_DESC": "Joseph W Schmoe",
                          "LIB_FEAT_ID": 100021,
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "Joseph W Schmoe",
                                  "LIB_FEAT_ID": 100021
                              },
                              {
                                  "FEAT_DESC": "Joseph Schmoe",
                                  "LIB_FEAT_ID": 100010
                              },
                              {
                                  "FEAT_DESC": "Joe Schmoe",
                                  "LIB_FEAT_ID": 100001
                              }
                          ]
                      }
                  ],
                  "PHONE": [
                      {
                          "FEAT_DESC": "702-555-1212",
                          "LIB_FEAT_ID": 100002,
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "702-555-1212",
                                  "LIB_FEAT_ID": 100002
                              }
                          ]
                      },
                      {
                          "FEAT_DESC": "702-555-1212",
                          "LIB_FEAT_ID": 100002,
                          "USAGE_TYPE": "HOME",
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "702-555-1212",
                                  "LIB_FEAT_ID": 100002
                              }
                          ]
                      },
                      {
                          "FEAT_DESC": "702-555-1313",
                          "LIB_FEAT_ID": 100012,
                          "USAGE_TYPE": "WORK",
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "702-555-1313",
                                  "LIB_FEAT_ID": 100012
                              }
                          ]
                      }
                  ]
              },
              "RECORD_SUMMARY": [
                  {
                      "DATA_SOURCE": "TEST",
                      "RECORD_COUNT": 3
                  }
              ],
              "RECORDS": [
                  {
                      "DATA_SOURCE": "TEST",
                      "RECORD_ID": "ABC123",
                      "INTERNAL_ID": 100002,
                      "MATCH_KEY": "",
                      "MATCH_LEVEL_CODE": "",
                      "ERRULE_CODE": ""
                  },
                  {
                      "DATA_SOURCE": "TEST",
                      "RECORD_ID": "XYZ987",
                      "INTERNAL_ID": 100003,
                      "MATCH_KEY": "+NAME+EMAIL",
                      "MATCH_LEVEL_CODE": "RESOLVED",
                      "ERRULE_CODE": "SF1_CNAME"
                  },
                  {
                      "DATA_SOURCE": "TEST",
                      "RECORD_ID": "ZYX789",
                      "INTERNAL_ID": 100004,
                      "MATCH_KEY": "+NAME+ADDRESS+PHONE",
                      "MATCH_LEVEL_CODE": "RESOLVED",
                      "ERRULE_CODE": "MFF_CNAME"
                  }
              ]
          },
          "RELATED_ENTITIES": [
          ]
      }

      Parameters:
      recordKey - The non-null SzRecordKey that specifies the data source code and record Id of the constituent record for the entity to retrieve.
      Returns:
      The JSON String describing the entity.
      Throws:
      SzUnknownDataSourceException - If an unrecognized data source code is specified.
      SzNotFoundException - If no entity could be found with the specified entity ID.
      SzException - If a failure occurs.
      See Also:
    • findInterestingEntities

      String findInterestingEntities(long entityId, Set<SzFlag> flags) throws SzNotFoundException, SzException
      Experimental method.

      Contact Senzing support for further information.

      The specified Set of SzFlag instances may contain any SzFlag value, but only flags belonging to the SzFlagUsageGroup.SZ_FIND_INTERESTING_ENTITIES_FLAGS group are guaranteed to be recognized (other SzFlag instances will be ignored unless they have equivalent bit flags to supported flags).

      NOTE: EnumSet offers an efficient means of constructing a Set of SzFlag.

      Usage:

      // How to find interesting entities related to an entity via entity ID
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get the ID of an entity to retrieve (varies by application)
          long entityId = getEntityId();
      
          // find the interesting entities by entity ID
          String result = engine.findInterestingEntities(
              entityId, SZ_FIND_INTERESTING_ENTITIES_DEFAULT_FLAGS);
      
          // do something with the response JSON (varies by application)
          JsonObject jsonObject = Json.createReader(new StringReader(result)).readObject();
      
          ...
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Entity not found for entity ID.", e);
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to find interesting entities by entity ID.", e);
      }
      

      Parameters:
      entityId - The entity ID identifying the entity that will be the focus for the interesting entities to be returned.
      flags - The optional Set of SzFlag instances belonging to the SzFlagUsageGroup.SZ_FIND_INTERESTING_ENTITIES_FLAGS group to control how the operation is performed and the content of the response, or null to default to SzFlag.SZ_NO_FLAGS or SzFlag.SZ_FIND_INTERESTING_ENTITIES_DEFAULT_FLAGS for the default recommended flags.
      Returns:
      The JSON String describing the interesting entities.
      Throws:
      SzNotFoundException - If no entity could be found with the specified entity ID.
      SzException - If a failure occurs.
      See Also:
    • findInterestingEntities

      default String findInterestingEntities(long entityId) throws SzNotFoundException, SzException
      Convenience method for calling findInterestingEntities(long, Set) with SzFlag.SZ_FIND_INTERESTING_ENTITIES_DEFAULT_FLAGS as the value for the flags parameter. See the findInterestingEntities(long, Set) documentation for details.

      Usage:

      // How to find interesting entities related to an entity via entity ID
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get the ID of an entity to retrieve (varies by application)
          long entityId = getEntityId();
      
          // find the interesting entities by entity ID
          String result = engine.findInterestingEntities(entityId);
      
          // do something with the response JSON (varies by application)
          JsonObject jsonObject = Json.createReader(new StringReader(result)).readObject();
      
          ...
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Entity not found for entity ID.", e);
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to find interesting entities by entity ID.", e);
      }
      

      Parameters:
      entityId - The entity ID identifying the entity that will be the focus for the interesting entities to be returned.
      Returns:
      The JSON String describing the interesting entities.
      Throws:
      SzNotFoundException - If no entity could be found with the specified entity ID.
      SzException - If a failure occurs.
      See Also:
    • findInterestingEntities

      String findInterestingEntities(SzRecordKey recordKey, Set<SzFlag> flags) throws SzUnknownDataSourceException, SzNotFoundException, SzException
      Experimental method.

      Contact Senzing support for further information.

      The specified Set of SzFlag instances may contain any SzFlag value, but only flags belonging to the SzFlagUsageGroup.SZ_FIND_INTERESTING_ENTITIES_FLAGS group are guaranteed to be recognized (other SzFlag instances will be ignored unless they have equivalent bit flags to supported flags).

      NOTE: EnumSet offers an efficient means of constructing a Set of SzFlag.

      Usage:

      // How to find interesting entities related to an entity via record key
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // retrieve the entity by record key
          String result = engine.findInterestingEntities(
              SzRecordKey.of("TEST", "ABC123"),
              SZ_FIND_INTERESTING_ENTITIES_DEFAULT_FLAGS);
      
          // do something with the response JSON (varies by application)
          JsonObject jsonObject = Json.createReader(new StringReader(result)).readObject();
      
          ...
      
      } catch (SzUnknownDataSourceException e) {
          // handle the unknown data source exception
          logError("Expected data source is not configured.", e);
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Entity not found for record key.", e);
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to find interesting entities by record key.", e);
      }
      

      Parameters:
      recordKey - The non-null SzRecordKey that specifies the data source code and record Id of the constituent record for the entity that is the focus for the interesting entities to be returned.
      flags - The optional Set of SzFlag instances belonging to the SzFlagUsageGroup.SZ_FIND_INTERESTING_ENTITIES_FLAGS group to control how the operation is performed and the content of the response, or null to default to SzFlag.SZ_NO_FLAGS or SzFlag.SZ_FIND_INTERESTING_ENTITIES_DEFAULT_FLAGS for the default recommended flags.
      Returns:
      The JSON String describing the interesting entities.
      Throws:
      SzUnknownDataSourceException - If an unrecognized data source code is specified.
      SzNotFoundException - If no record could be found with the specified record ID.
      SzException - If a failure occurs.
      See Also:
    • findInterestingEntities

      default String findInterestingEntities(SzRecordKey recordKey) throws SzUnknownDataSourceException, SzNotFoundException, SzException
      Convenience method for calling findInterestingEntities(SzRecordKey, Set) with SzFlag.SZ_FIND_INTERESTING_ENTITIES_DEFAULT_FLAGS as the value for the flags parameter. See the findInterestingEntities(SzRecordKey, Set) documentation for details.

      Usage:

      // How to find interesting entities related to an entity via record key
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // retrieve the entity by record key
          String result = engine.findInterestingEntities(
              SzRecordKey.of("TEST", "ABC123"));
      
          // do something with the response JSON (varies by application)
          JsonObject jsonObject = Json.createReader(new StringReader(result)).readObject();
      
          ...
      
      } catch (SzUnknownDataSourceException e) {
          // handle the unknown data source exception
          logError("Expected data source is not configured.", e);
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Entity not found for record key.", e);
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to find interesting entities by record key.", e);
      }
      

      Parameters:
      recordKey - The non-null SzRecordKey that specifies the data source code and record Id of the constituent record for the entity that is the focus for the interesting entities to be returned.
      Returns:
      The JSON String describing the interesting entities.
      Throws:
      SzUnknownDataSourceException - If an unrecognized data source code is specified.
      SzNotFoundException - If no record could be found with the specified record ID.
      SzException - If a failure occurs.
      See Also:
    • findPath

      String findPath(long startEntityId, long endEntityId, int maxDegrees, SzEntityIds avoidEntityIds, Set<String> requiredDataSources, Set<SzFlag> flags) throws SzNotFoundException, SzUnknownDataSourceException, SzException
      Searches for the shortest relationship path between two entities, specified by entity IDs.

      The returned path is the shortest path among the paths that satisfy the parameters.

      The optionally specified Set of SzFlag instances not only control how the operation is performed but also the level of detail provided for the path and the entities on the path. The Set may contain any SzFlag value, but only flags belonging to the SzFlagUsageGroup.SZ_FIND_PATH_FLAGS group will be recognized (other SzFlag instance will be ignored unless they have equivalent bit flags).

      NOTE: EnumSet offers an efficient means of constructing a Set of SzFlag.

      Usage:

      // How to find an entity path using entity ID's
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get entity ID's for the path endpoints (varies by application)
          long startEntityId = getPathStartEntityId();
          long endEntityId   = getPathEndEntityId();
      
          // determine the maximum path degrees (varies by application)
          int maxDegrees = 4;
      
          // determine any entities to be avoided (varies by application)
          Set<Long> avoidEntities = getPathAvoidEntityIds();
      
          // determine any data sources to require in the path (varies by application)
          Set<String> requiredSources = null;
      
          // retrieve the entity path using the entity ID's
          String result = engine.findPath(startEntityId,
                                          endEntityId,
                                          maxDegrees,
                                          SzEntityIds.of(avoidEntities),
                                          requiredSources,
                                          SZ_FIND_PATH_DEFAULT_FLAGS);
      
          // do something with the response JSON (varies by application)
          JsonObject  jsonObject  = Json.createReader(new StringReader(result)).readObject();
          JsonArray   pathArr     = jsonObject.getJsonArray("ENTITY_PATHS");
          for (JsonObject path : pathArr.getValuesAs(JsonObject.class)) {
              JsonArray entityIds = path.getJsonArray("ENTITIES");
      
              for (JsonNumber number : entityIds.getValuesAs(JsonNumber.class)) {
                  long entityId = number.longValue();
      
                  ...
              }
          }
      
      } catch (SzUnknownDataSourceException e) {
          // handle the unknown data source exception
          logError("Expected data source is not configured.", e);
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Entity not found for entity ID.", e);
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to retrieve entity path by entity ID.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "ENTITY_PATHS": [
              {
                  "START_ENTITY_ID": 1,
                  "END_ENTITY_ID": 12,
                  "ENTITIES": [
                      1,
                      5,
                      8,
                      12
                  ]
              }
          ],
          "ENTITY_PATH_LINKS": [
              {
                  "MIN_ENTITY_ID": 1,
                  "MAX_ENTITY_ID": 5,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+ADDRESS-DOB",
                  "ERRULE_CODE": "SFF",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 5,
                  "MAX_ENTITY_ID": 8,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+PHONE-DOB",
                  "ERRULE_CODE": "SF1",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 8,
                  "MAX_ENTITY_ID": 12,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+ADDRESS-DOB",
                  "ERRULE_CODE": "SFF",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              }
          ],
          "ENTITIES": [
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 1,
                      "ENTITY_NAME": "Joseph Schmidt",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "PASSENGERS",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 5,
                      "ENTITY_NAME": "Bill Bandley",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "EMPLOYEES",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 8,
                      "ENTITY_NAME": "Katrina Osmond",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "EMPLOYEES",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 12,
                      "ENTITY_NAME": "Kelly Rogers",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "VIPS",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              }
          ]
      }

      Parameters:
      startEntityId - The entity ID of the first entity.
      endEntityId - The entity ID of the second entity.
      maxDegrees - The maximum number of degrees for the path search.
      avoidEntityIds - The optional SzEntityIds describing the Set of non-null Long entity ID's identifying entities to be avoided when finding the path, or null if no entities are to be avoided. By default the entities will be avoided unless necessary to find the path. To strictly avoid the entities specify the SzFlag.SZ_FIND_PATH_STRICT_AVOID flag.
      requiredDataSources - The optional Set of non-null String data source codes identifying the data sources for which at least one record must be included on the path, or null if none are required.
      flags - The optional Set of SzFlag instances belonging to the SzFlagUsageGroup.SZ_FIND_PATH_FLAGS group to control how the operation is performed and the content of the response, or null to default to SzFlag.SZ_NO_FLAGS or SzFlag.SZ_FIND_PATH_DEFAULT_FLAGS for the default recommended flags.
      Returns:
      The JSON String describing the resultant entity path which may be an empty path if no path exists between the two entities given the path parameters.
      Throws:
      SzNotFoundException - If either the path-start or path-end entities for the specified entity ID's cannot be found.
      SzUnknownDataSourceException - If an unrecognized required data source is specified.
      SzException - If a failure occurs.
      See Also:
    • findPath

      default String findPath(long startEntityId, long endEntityId, int maxDegrees, SzEntityIds avoidEntityIds, Set<String> requiredDataSources) throws SzNotFoundException, SzUnknownDataSourceException, SzException
      Convenience method for calling findPath(long, long, int, SzEntityIds, Set, Set) using SzFlag.SZ_FIND_PATH_DEFAULT_FLAGS as the value for the flags parameter. See the findPath(long, long, int, SzEntityIds, Set, Set) documentation for details.

      Usage:

      // How to find an entity path using entity ID's
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get entity ID's for the path endpoints (varies by application)
          long startEntityId = getPathStartEntityId();
          long endEntityId   = getPathEndEntityId();
      
          // determine the maximum path degrees (varies by application)
          int maxDegrees = 4;
      
          // determine any entities to be avoided (varies by application)
          Set<Long> avoidEntities = getPathAvoidEntityIds();
      
          // determine any data sources to require in the path (varies by application)
          Set<String> requiredSources = null;
      
          // retrieve the entity path using the entity ID's
          String result = engine.findPath(startEntityId,
                                          endEntityId,
                                          maxDegrees,
                                          SzEntityIds.of(avoidEntities),
                                          requiredSources);
      
          // do something with the response JSON (varies by application)
          JsonObject  jsonObject  = Json.createReader(new StringReader(result)).readObject();
          JsonArray   pathArr     = jsonObject.getJsonArray("ENTITY_PATHS");
          for (JsonObject path : pathArr.getValuesAs(JsonObject.class)) {
              JsonArray entityIds = path.getJsonArray("ENTITIES");
      
              for (JsonNumber number : entityIds.getValuesAs(JsonNumber.class)) {
                  long entityId = number.longValue();
      
                  ...
              }
          }
      
      } catch (SzUnknownDataSourceException e) {
          // handle the unknown data source exception
          logError("Expected data source is not configured.", e);
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Entity not found for entity ID.", e);
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to retrieve entity path by entity ID.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "ENTITY_PATHS": [
              {
                  "START_ENTITY_ID": 1,
                  "END_ENTITY_ID": 12,
                  "ENTITIES": [
                      1,
                      5,
                      8,
                      12
                  ]
              }
          ],
          "ENTITY_PATH_LINKS": [
              {
                  "MIN_ENTITY_ID": 1,
                  "MAX_ENTITY_ID": 5,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+ADDRESS-DOB",
                  "ERRULE_CODE": "SFF",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 5,
                  "MAX_ENTITY_ID": 8,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+PHONE-DOB",
                  "ERRULE_CODE": "SF1",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 8,
                  "MAX_ENTITY_ID": 12,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+ADDRESS-DOB",
                  "ERRULE_CODE": "SFF",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              }
          ],
          "ENTITIES": [
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 1,
                      "ENTITY_NAME": "Joseph Schmidt",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "PASSENGERS",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 5,
                      "ENTITY_NAME": "Bill Bandley",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "EMPLOYEES",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 8,
                      "ENTITY_NAME": "Katrina Osmond",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "EMPLOYEES",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 12,
                      "ENTITY_NAME": "Kelly Rogers",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "VIPS",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              }
          ]
      }

      Parameters:
      startEntityId - The entity ID of the first entity.
      endEntityId - The entity ID of the second entity.
      maxDegrees - The maximum number of degrees for the path search.
      avoidEntityIds - The optional SzEntityIds describing the Set of non-null Long entity ID's identifying entities to be avoided when finding the path, or null if no entities are to be avoided. By default the entities will be avoided unless necessary to find the path. To strictly avoid the entities specify the SzFlag.SZ_FIND_PATH_STRICT_AVOID flag.
      requiredDataSources - The optional Set of non-null String data source codes identifying the data sources for which at least one record must be included on the path, or null if none are required.
      Returns:
      The JSON String describing the resultant entity path which may be an empty path if no path exists between the two entities given the path parameters.
      Throws:
      SzNotFoundException - If either the path-start or path-end entities for the specified entity ID's cannot be found.
      SzUnknownDataSourceException - If an unrecognized required data source is specified.
      SzException - If a failure occurs.
      See Also:
    • findPath

      default String findPath(long startEntityId, long endEntityId, int maxDegrees, Set<SzFlag> flags) throws SzNotFoundException, SzUnknownDataSourceException, SzException
      Convenience method for calling findPath(long, long, int, SzEntityIds, Set, Set) using null as the value for both the "avoid entity ID's" and the "required data sources" parameters. See the findPath(long, long, int, SzEntityIds, Set, Set) documentation for details.

      Usage:

      // How to find an entity path using entity ID's
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get entity ID's for the path endpoints (varies by application)
          long startEntityId = getPathStartEntityId();
          long endEntityId   = getPathEndEntityId();
      
          // determine the maximum path degrees (varies by application)
          int maxDegrees = 4;
      
          // retrieve the entity path using the entity ID's
          String result = engine.findPath(startEntityId,
                                          endEntityId,
                                          maxDegrees,
                                          SZ_FIND_PATH_DEFAULT_FLAGS);
      
          // do something with the response JSON (varies by application)
          JsonObject  jsonObject  = Json.createReader(new StringReader(result)).readObject();
          JsonArray   pathArr     = jsonObject.getJsonArray("ENTITY_PATHS");
          for (JsonObject path : pathArr.getValuesAs(JsonObject.class)) {
              JsonArray entityIds = path.getJsonArray("ENTITIES");
      
              for (JsonNumber number : entityIds.getValuesAs(JsonNumber.class)) {
                  long entityId = number.longValue();
      
                  ...
              }
          }
      
      } catch (SzUnknownDataSourceException e) {
          // handle the unknown data source exception
          logError("Expected data source is not configured.", e);
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Entity not found for entity ID.", e);
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to retrieve entity path by entity ID.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "ENTITY_PATHS": [
              {
                  "START_ENTITY_ID": 1,
                  "END_ENTITY_ID": 12,
                  "ENTITIES": [
                      1,
                      5,
                      8,
                      12
                  ]
              }
          ],
          "ENTITY_PATH_LINKS": [
              {
                  "MIN_ENTITY_ID": 1,
                  "MAX_ENTITY_ID": 5,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+ADDRESS-DOB",
                  "ERRULE_CODE": "SFF",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 5,
                  "MAX_ENTITY_ID": 8,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+PHONE-DOB",
                  "ERRULE_CODE": "SF1",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 8,
                  "MAX_ENTITY_ID": 12,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+ADDRESS-DOB",
                  "ERRULE_CODE": "SFF",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              }
          ],
          "ENTITIES": [
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 1,
                      "ENTITY_NAME": "Joseph Schmidt",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "PASSENGERS",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 5,
                      "ENTITY_NAME": "Bill Bandley",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "EMPLOYEES",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 8,
                      "ENTITY_NAME": "Katrina Osmond",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "EMPLOYEES",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 12,
                      "ENTITY_NAME": "Kelly Rogers",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "VIPS",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              }
          ]
      }

      Parameters:
      startEntityId - The entity ID of the first entity.
      endEntityId - The entity ID of the second entity.
      maxDegrees - The maximum number of degrees for the path search.
      flags - The optional Set of SzFlag instances belonging to the SzFlagUsageGroup.SZ_FIND_PATH_FLAGS group to control how the operation is performed and the content of the response, or null to default to SzFlag.SZ_NO_FLAGS or SzFlag.SZ_FIND_PATH_DEFAULT_FLAGS for the default recommended flags.
      Returns:
      The JSON String describing the resultant entity path which may be an empty path if no path exists between the two entities given the path parameters.
      Throws:
      SzNotFoundException - If either the path-start or path-end entities for the specified entity ID's cannot be found.
      SzUnknownDataSourceException - If an unrecognized required data source is specified.
      SzException - If a failure occurs.
      See Also:
    • findPath

      default String findPath(long startEntityId, long endEntityId, int maxDegrees) throws SzNotFoundException, SzUnknownDataSourceException, SzException
      Convenience method for calling findPath(long, long, int, SzEntityIds, Set, Set) using null as the value for both the "avoid entity ID's" and the "required data sources" parameters and SzFlag.SZ_FIND_PATH_DEFAULT_FLAGS as the value for the flags parameter. See the findPath(long, long, int, SzEntityIds, Set, Set) documentation for details.

      Usage:

      // How to find an entity path using entity ID's
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get entity ID's for the path endpoints (varies by application)
          long startEntityId = getPathStartEntityId();
          long endEntityId   = getPathEndEntityId();
      
          // determine the maximum path degrees (varies by application)
          int maxDegrees = 4;
      
          // retrieve the entity path using the entity ID's
          String result = engine.findPath(startEntityId,
                                          endEntityId,
                                          maxDegrees);
      
          // do something with the response JSON (varies by application)
          JsonObject  jsonObject  = Json.createReader(new StringReader(result)).readObject();
          JsonArray   pathArr     = jsonObject.getJsonArray("ENTITY_PATHS");
          for (JsonObject path : pathArr.getValuesAs(JsonObject.class)) {
              JsonArray entityIds = path.getJsonArray("ENTITIES");
      
              for (JsonNumber number : entityIds.getValuesAs(JsonNumber.class)) {
                  long entityId = number.longValue();
      
                  ...
              }
          }
      
      } catch (SzUnknownDataSourceException e) {
          // handle the unknown data source exception
          logError("Expected data source is not configured.", e);
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Entity not found for entity ID.", e);
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to retrieve entity path by entity ID.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "ENTITY_PATHS": [
              {
                  "START_ENTITY_ID": 1,
                  "END_ENTITY_ID": 12,
                  "ENTITIES": [
                      1,
                      5,
                      8,
                      12
                  ]
              }
          ],
          "ENTITY_PATH_LINKS": [
              {
                  "MIN_ENTITY_ID": 1,
                  "MAX_ENTITY_ID": 5,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+ADDRESS-DOB",
                  "ERRULE_CODE": "SFF",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 5,
                  "MAX_ENTITY_ID": 8,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+PHONE-DOB",
                  "ERRULE_CODE": "SF1",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 8,
                  "MAX_ENTITY_ID": 12,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+ADDRESS-DOB",
                  "ERRULE_CODE": "SFF",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              }
          ],
          "ENTITIES": [
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 1,
                      "ENTITY_NAME": "Joseph Schmidt",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "PASSENGERS",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 5,
                      "ENTITY_NAME": "Bill Bandley",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "EMPLOYEES",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 8,
                      "ENTITY_NAME": "Katrina Osmond",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "EMPLOYEES",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 12,
                      "ENTITY_NAME": "Kelly Rogers",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "VIPS",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              }
          ]
      }

      Parameters:
      startEntityId - The entity ID of the first entity.
      endEntityId - The entity ID of the second entity.
      maxDegrees - The maximum number of degrees for the path search.
      Returns:
      The JSON String describing the resultant entity path which may be an empty path if no path exists between the two entities given the path parameters.
      Throws:
      SzNotFoundException - If either the path-start or path-end entities for the specified entity ID's cannot be found.
      SzUnknownDataSourceException - If an unrecognized required data source is specified.
      SzException - If a failure occurs.
      See Also:
    • findPath

      String findPath(SzRecordKey startRecordKey, SzRecordKey endRecordKey, int maxDegrees, SzRecordKeys avoidRecordKeys, Set<String> requiredDataSources, Set<SzFlag> flags) throws SzNotFoundException, SzUnknownDataSourceException, SzException
      Searches for the shortest relationship path between two entities, specified by record IDs.

      The optionally specified Set of SzFlag instances not only control how the operation is performed but also the level of detail provided for the path and the entities on the path. The Set may contain any SzFlag value, but only flags belonging to the SzFlagUsageGroup.SZ_FIND_PATH_FLAGS group will be recognized (other SzFlag instance will be ignored unless they have equivalent bit flags).

      NOTE: EnumSet offers an efficient means of constructing a Set of SzFlag.

      Usage:

      // How to find an entity path using record keys
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get entity ID's for the path endpoints (varies by application)
          SzRecordKey startRecordKey = getPathStartRecordKey();
          SzRecordKey endRecordKey   = getPathEndRecordKey();
      
          // determine the maximum path degrees (varies by application)
          int maxDegrees = 4;
      
          // determine any records to be avoided (varies by application)
          Set<SzRecordKey> avoidRecords = getPathAvoidRecordKeys();
      
          // determine any data sources to require in the path (varies by application)
          Set<String> requiredSources = null;
      
          // retrieve the entity path using the record keys
          String result = engine.findPath(startRecordKey,
                                          endRecordKey,
                                          maxDegrees,
                                          SzRecordKeys.of(avoidRecords),
                                          requiredSources,
                                          SZ_FIND_PATH_DEFAULT_FLAGS);
      
          // do something with the response JSON (varies by application)
          JsonObject  jsonObject  = Json.createReader(new StringReader(result)).readObject();
          JsonArray   pathArr     = jsonObject.getJsonArray("ENTITY_PATHS");
          for (JsonObject path : pathArr.getValuesAs(JsonObject.class)) {
              JsonArray entityIds = path.getJsonArray("ENTITIES");
      
              for (JsonNumber number : entityIds.getValuesAs(JsonNumber.class)) {
                  long entityId = number.longValue();
      
                  ...
              }
          }
      
      } catch (SzUnknownDataSourceException e) {
          // handle the unknown data source exception
          logError("Expected data source is not configured.", e);
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Entity not found for record key.", e);
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to retrieve entity path by record key.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "ENTITY_PATHS": [
              {
                  "START_ENTITY_ID": 1,
                  "END_ENTITY_ID": 12,
                  "ENTITIES": [
                      1,
                      5,
                      8,
                      12
                  ]
              }
          ],
          "ENTITY_PATH_LINKS": [
              {
                  "MIN_ENTITY_ID": 1,
                  "MAX_ENTITY_ID": 5,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+ADDRESS-DOB",
                  "ERRULE_CODE": "SFF",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 5,
                  "MAX_ENTITY_ID": 8,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+PHONE-DOB",
                  "ERRULE_CODE": "SF1",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 8,
                  "MAX_ENTITY_ID": 12,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+ADDRESS-DOB",
                  "ERRULE_CODE": "SFF",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              }
          ],
          "ENTITIES": [
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 1,
                      "ENTITY_NAME": "Joseph Schmidt",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "PASSENGERS",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 5,
                      "ENTITY_NAME": "Bill Bandley",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "EMPLOYEES",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 8,
                      "ENTITY_NAME": "Katrina Osmond",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "EMPLOYEES",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 12,
                      "ENTITY_NAME": "Kelly Rogers",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "VIPS",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              }
          ]
      }

      Parameters:
      startRecordKey - The SzRecordKey containing the data source code and record ID identifying the record at the start of the path.
      endRecordKey - The SzRecordKey containing the data source code and record ID identifying the record at the end of the path.
      maxDegrees - The maximum number of degrees for the path search.
      avoidRecordKeys - The optional SzRecordKeys describing the Set of non-null SzRecordKey instances providing the data source code and record ID pairs of the records whose entities are to be avoided when finding the path, or null if no entities identified by are to be avoided. By default the entities will be avoided unless necessary to find the path. To strictly avoid the entities specify the SzFlag.SZ_FIND_PATH_STRICT_AVOID flag.
      requiredDataSources - The optional Set of non-null String data source codes identifying the data sources for which at least one record must be included on the path, or null if none are required.
      flags - The optional Set of SzFlag instances belonging to the SzFlagUsageGroup.SZ_FIND_PATH_FLAGS group to control how the operation is performed and the content of the response, or null to default to SzFlag.SZ_NO_FLAGS or SzFlag.SZ_FIND_PATH_DEFAULT_FLAGS for the default recommended flags.
      Returns:
      The JSON String describing the resultant entity path which may be an empty path if no path exists between the two entities given the path parameters.
      Throws:
      SzNotFoundException - If either the path-start or path-end records for the specified data source code and record ID pairs cannot be found.
      SzUnknownDataSourceException - If an unrecognized data source code is specified.
      SzException - If a failure occurs.
      See Also:
    • findPath

      default String findPath(SzRecordKey startRecordKey, SzRecordKey endRecordKey, int maxDegrees, SzRecordKeys avoidRecordKeys, Set<String> requiredDataSources) throws SzNotFoundException, SzUnknownDataSourceException, SzException
      Convenience method for calling findPath(SzRecordKey, SzRecordKey, int, SzRecordKeys, Set, Set) using SzFlag.SZ_FIND_PATH_DEFAULT_FLAGS as the value for the flags parameter. See the findPath(SzRecordKey, SzRecordKey, int, SzRecordKeys, Set, Set) documentation for details.

      Usage:

      // How to find an entity path using record keys
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get entity ID's for the path endpoints (varies by application)
          SzRecordKey startRecordKey = getPathStartRecordKey();
          SzRecordKey endRecordKey   = getPathEndRecordKey();
      
          // determine the maximum path degrees (varies by application)
          int maxDegrees = 4;
      
          // determine any records to be avoided (varies by application)
          Set<SzRecordKey> avoidRecords = getPathAvoidRecordKeys();
      
          // determine any data sources to require in the path (varies by application)
          Set<String> requiredSources = null;
      
          // retrieve the entity path using the record keys
          String result = engine.findPath(startRecordKey,
                                          endRecordKey,
                                          maxDegrees,
                                          SzRecordKeys.of(avoidRecords),
                                          requiredSources);
      
          // do something with the response JSON (varies by application)
          JsonObject  jsonObject  = Json.createReader(new StringReader(result)).readObject();
          JsonArray   pathArr     = jsonObject.getJsonArray("ENTITY_PATHS");
          for (JsonObject path : pathArr.getValuesAs(JsonObject.class)) {
              JsonArray entityIds = path.getJsonArray("ENTITIES");
      
              for (JsonNumber number : entityIds.getValuesAs(JsonNumber.class)) {
                  long entityId = number.longValue();
      
                  ...
              }
          }
      
      } catch (SzUnknownDataSourceException e) {
          // handle the unknown data source exception
          logError("Expected data source is not configured.", e);
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Entity not found for record key.", e);
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to retrieve entity path by record key.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "ENTITY_PATHS": [
              {
                  "START_ENTITY_ID": 1,
                  "END_ENTITY_ID": 12,
                  "ENTITIES": [
                      1,
                      5,
                      8,
                      12
                  ]
              }
          ],
          "ENTITY_PATH_LINKS": [
              {
                  "MIN_ENTITY_ID": 1,
                  "MAX_ENTITY_ID": 5,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+ADDRESS-DOB",
                  "ERRULE_CODE": "SFF",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 5,
                  "MAX_ENTITY_ID": 8,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+PHONE-DOB",
                  "ERRULE_CODE": "SF1",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 8,
                  "MAX_ENTITY_ID": 12,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+ADDRESS-DOB",
                  "ERRULE_CODE": "SFF",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              }
          ],
          "ENTITIES": [
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 1,
                      "ENTITY_NAME": "Joseph Schmidt",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "PASSENGERS",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 5,
                      "ENTITY_NAME": "Bill Bandley",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "EMPLOYEES",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 8,
                      "ENTITY_NAME": "Katrina Osmond",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "EMPLOYEES",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 12,
                      "ENTITY_NAME": "Kelly Rogers",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "VIPS",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              }
          ]
      }

      Parameters:
      startRecordKey - The SzRecordKey containing the data source code and record ID identifying the record at the start of the path.
      endRecordKey - The SzRecordKey containing the data source code and record ID identifying the record at the end of the path.
      maxDegrees - The maximum number of degrees for the path search.
      avoidRecordKeys - The optional SzRecordKeys describing the Set of non-null SzRecordKey instances providing the data source code and record ID pairs of the records whose entities are to be avoided when finding the path, or null if no entities identified by are to be avoided. By default the entities will be avoided unless necessary to find the path. To strictly avoid the entities specify the SzFlag.SZ_FIND_PATH_STRICT_AVOID flag.
      requiredDataSources - The optional Set of non-null String data source codes identifying the data sources for which at least one record must be included on the path, or null if none are required.
      Returns:
      The JSON String describing the resultant entity path which may be an empty path if no path exists between the two entities given the path parameters.
      Throws:
      SzNotFoundException - If either the path-start or path-end records for the specified data source code and record ID pairs cannot be found.
      SzUnknownDataSourceException - If an unrecognized data source code is specified.
      SzException - If a failure occurs.
      See Also:
    • findPath

      default String findPath(SzRecordKey startRecordKey, SzRecordKey endRecordKey, int maxDegrees, Set<SzFlag> flags) throws SzNotFoundException, SzUnknownDataSourceException, SzException
      Convenience method for calling findPath(SzRecordKey, SzRecordKey, int, SzRecordKeys, Set, Set) using null as the value for both the "avoid record keys" and the "required data sources" parameters. See the findPath(SzRecordKey, SzRecordKey, int, SzRecordKeys, Set, Set) documentation for details.

      Usage:

      // How to find an entity path using record keys
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get entity ID's for the path endpoints (varies by application)
          SzRecordKey startRecordKey = getPathStartRecordKey();
          SzRecordKey endRecordKey   = getPathEndRecordKey();
      
          // determine the maximum path degrees (varies by application)
          int maxDegrees = 4;
      
          // retrieve the entity path using the record keys
          String result = engine.findPath(startRecordKey,
                                          endRecordKey,
                                          maxDegrees,
                                          SZ_FIND_PATH_DEFAULT_FLAGS);
      
          // do something with the response JSON (varies by application)
          JsonObject  jsonObject  = Json.createReader(new StringReader(result)).readObject();
          JsonArray   pathArr     = jsonObject.getJsonArray("ENTITY_PATHS");
          for (JsonObject path : pathArr.getValuesAs(JsonObject.class)) {
              JsonArray entityIds = path.getJsonArray("ENTITIES");
      
              for (JsonNumber number : entityIds.getValuesAs(JsonNumber.class)) {
                  long entityId = number.longValue();
      
                  ...
              }
          }
      
      } catch (SzUnknownDataSourceException e) {
          // handle the unknown data source exception
          logError("Expected data source is not configured.", e);
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Entity not found for record key.", e);
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to retrieve entity path by record key.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "ENTITY_PATHS": [
              {
                  "START_ENTITY_ID": 1,
                  "END_ENTITY_ID": 12,
                  "ENTITIES": [
                      1,
                      5,
                      8,
                      12
                  ]
              }
          ],
          "ENTITY_PATH_LINKS": [
              {
                  "MIN_ENTITY_ID": 1,
                  "MAX_ENTITY_ID": 5,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+ADDRESS-DOB",
                  "ERRULE_CODE": "SFF",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 5,
                  "MAX_ENTITY_ID": 8,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+PHONE-DOB",
                  "ERRULE_CODE": "SF1",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 8,
                  "MAX_ENTITY_ID": 12,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+ADDRESS-DOB",
                  "ERRULE_CODE": "SFF",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              }
          ],
          "ENTITIES": [
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 1,
                      "ENTITY_NAME": "Joseph Schmidt",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "PASSENGERS",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 5,
                      "ENTITY_NAME": "Bill Bandley",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "EMPLOYEES",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 8,
                      "ENTITY_NAME": "Katrina Osmond",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "EMPLOYEES",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 12,
                      "ENTITY_NAME": "Kelly Rogers",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "VIPS",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              }
          ]
      }

      Parameters:
      startRecordKey - The SzRecordKey containing the data source code and record ID identifying the record at the start of the path.
      endRecordKey - The SzRecordKey containing the data source code and record ID identifying the record at the end of the path.
      maxDegrees - The maximum number of degrees for the path search.
      flags - The optional Set of SzFlag instances belonging to the SzFlagUsageGroup.SZ_FIND_PATH_FLAGS group to control how the operation is performed and the content of the response, or null to default to SzFlag.SZ_NO_FLAGS or SzFlag.SZ_FIND_PATH_DEFAULT_FLAGS for the default recommended flags.
      Returns:
      The JSON String describing the resultant entity path which may be an empty path if no path exists between the two entities given the path parameters.
      Throws:
      SzNotFoundException - If either the path-start or path-end records for the specified data source code and record ID pairs cannot be found.
      SzUnknownDataSourceException - If an unrecognized data source code is specified.
      SzException - If a failure occurs.
      See Also:
    • findPath

      default String findPath(SzRecordKey startRecordKey, SzRecordKey endRecordKey, int maxDegrees) throws SzNotFoundException, SzUnknownDataSourceException, SzException
      Convenience method for calling findPath(SzRecordKey, SzRecordKey, int, SzRecordKeys, Set, Set) using null as the value for both the "avoid record keys" and the "required data sources" parameters and SzFlag.SZ_FIND_PATH_DEFAULT_FLAGS as the value for the flags parameter. See the findPath(SzRecordKey, SzRecordKey, int, SzRecordKeys, Set, Set) documentation for details.

      Usage:

      // How to find an entity path using record keys
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get entity ID's for the path endpoints (varies by application)
          SzRecordKey startRecordKey = getPathStartRecordKey();
          SzRecordKey endRecordKey   = getPathEndRecordKey();
      
          // determine the maximum path degrees (varies by application)
          int maxDegrees = 4;
      
          // retrieve the entity path using the record keys
          String result = engine.findPath(startRecordKey,
                                          endRecordKey,
                                          maxDegrees);
      
          // do something with the response JSON (varies by application)
          JsonObject  jsonObject  = Json.createReader(new StringReader(result)).readObject();
          JsonArray   pathArr     = jsonObject.getJsonArray("ENTITY_PATHS");
          for (JsonObject path : pathArr.getValuesAs(JsonObject.class)) {
              JsonArray entityIds = path.getJsonArray("ENTITIES");
      
              for (JsonNumber number : entityIds.getValuesAs(JsonNumber.class)) {
                  long entityId = number.longValue();
      
                  ...
              }
          }
      
      } catch (SzUnknownDataSourceException e) {
          // handle the unknown data source exception
          logError("Expected data source is not configured.", e);
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Entity not found for record key.", e);
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to retrieve entity path by record key.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "ENTITY_PATHS": [
              {
                  "START_ENTITY_ID": 1,
                  "END_ENTITY_ID": 12,
                  "ENTITIES": [
                      1,
                      5,
                      8,
                      12
                  ]
              }
          ],
          "ENTITY_PATH_LINKS": [
              {
                  "MIN_ENTITY_ID": 1,
                  "MAX_ENTITY_ID": 5,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+ADDRESS-DOB",
                  "ERRULE_CODE": "SFF",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 5,
                  "MAX_ENTITY_ID": 8,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+PHONE-DOB",
                  "ERRULE_CODE": "SF1",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 8,
                  "MAX_ENTITY_ID": 12,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+ADDRESS-DOB",
                  "ERRULE_CODE": "SFF",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              }
          ],
          "ENTITIES": [
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 1,
                      "ENTITY_NAME": "Joseph Schmidt",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "PASSENGERS",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 5,
                      "ENTITY_NAME": "Bill Bandley",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "EMPLOYEES",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 8,
                      "ENTITY_NAME": "Katrina Osmond",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "EMPLOYEES",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 12,
                      "ENTITY_NAME": "Kelly Rogers",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "VIPS",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              }
          ]
      }

      Parameters:
      startRecordKey - The SzRecordKey containing the data source code and record ID identifying the record at the start of the path.
      endRecordKey - The SzRecordKey containing the data source code and record ID identifying the record at the end of the path.
      maxDegrees - The maximum number of degrees for the path search.
      Returns:
      The JSON String describing the resultant entity path which may be an empty path if no path exists between the two entities given the path parameters.
      Throws:
      SzNotFoundException - If either the path-start or path-end records for the specified data source code and record ID pairs cannot be found.
      SzUnknownDataSourceException - If an unrecognized data source code is specified.
      SzException - If a failure occurs.
      See Also:
    • findNetwork

      String findNetwork(SzEntityIds entityIds, int maxDegrees, int buildOutDegrees, int buildOutMaxEntities, Set<SzFlag> flags) throws SzNotFoundException, SzException
      Retrieves a network of relationships among entities, specified by entity IDs.

      WARNING: Entity networks may be very large due to the volume of inter-related data in the repository. The parameters of this method can be used to limit the information returned.

      The optionally specified Set of SzFlag instances not only control how the operation is performed but also the level of detail provided for the network and the entities on the network. The Set may contain any SzFlag value, but only flags belonging to the SzFlagUsageGroup.SZ_FIND_NETWORK_FLAGS group are guaranteed to be recognized (other SzFlag instances will be ignored unless they have equivalent bit flags).

      NOTE: EnumSet offers an efficient means of constructing a Set of SzFlag.

      Usage:

      // How to find an entity network using entity ID's
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get entity ID's for the path endpoints (varies by application)
          Set<Long> entityIds = getNetworkEntityIds();
      
          // determine the maximum path degrees (varies by application)
          int maxDegrees = 3;
      
          // determine the degrees to build-out the network (varies by application)
          int buildOutDegrees = 0;
      
          // determine the max entities to build-out (varies by application)
          int buildOutMaxEntities = 10;
      
          // retrieve the entity network using the entity ID's
          String result = engine.findNetwork(SzEntityIds.of(entityIds),
                                             maxDegrees,
                                             buildOutDegrees,
                                             buildOutMaxEntities,
                                             SZ_FIND_NETWORK_DEFAULT_FLAGS);
      
          // do something with the response JSON (varies by application)
          JsonObject  jsonObject  = Json.createReader(new StringReader(result)).readObject();
          JsonArray   pathArr     = jsonObject.getJsonArray("ENTITY_PATHS");
          for (JsonObject path : pathArr.getValuesAs(JsonObject.class)) {
              long      startEntityId = path.getJsonNumber("START_ENTITY_ID").longValue();
              long      endEntityId   = path.getJsonNumber("END_ENTITY_ID").longValue();
              JsonArray entityPathIds = path.getJsonArray("ENTITIES");
      
              for (JsonNumber number : entityPathIds.getValuesAs(JsonNumber.class)) {
                  long entityId = number.longValue();
      
                  ...
              }
          }
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Entity not found for entity ID.", e);
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to retrieve entity network.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "ENTITY_PATHS": [
              {
                  "START_ENTITY_ID": 1,
                  "END_ENTITY_ID": 7,
                  "ENTITIES": [
                      1,
                      2,
                      6,
                      7
                  ]
              },
              {
                  "START_ENTITY_ID": 1,
                  "END_ENTITY_ID": 12,
                  "ENTITIES": [
                      1,
                      5,
                      8,
                      12
                  ]
              },
              {
                  "START_ENTITY_ID": 7,
                  "END_ENTITY_ID": 12,
                  "ENTITIES": [
                  ]
              }
          ],
          "ENTITY_NETWORK_LINKS": [
              {
                  "MIN_ENTITY_ID": 1,
                  "MAX_ENTITY_ID": 2,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+PHONE-DOB",
                  "ERRULE_CODE": "SF1",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 1,
                  "MAX_ENTITY_ID": 5,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+ADDRESS-DOB",
                  "ERRULE_CODE": "SFF",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 2,
                  "MAX_ENTITY_ID": 6,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+PHONE+SURNAME-DOB",
                  "ERRULE_CODE": "CFF_SURNAME",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 5,
                  "MAX_ENTITY_ID": 8,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+PHONE-DOB",
                  "ERRULE_CODE": "SF1",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 6,
                  "MAX_ENTITY_ID": 7,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+ADDRESS-DOB",
                  "ERRULE_CODE": "SFF",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 8,
                  "MAX_ENTITY_ID": 12,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+ADDRESS-DOB",
                  "ERRULE_CODE": "SFF",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              }
          ],
          "ENTITIES": [
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 1,
                      "ENTITY_NAME": "Joseph Schmidt",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "PASSENGERS",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 2,
                      "ENTITY_NAME": "Joann Smith",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "PASSENGERS",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 5,
                      "ENTITY_NAME": "Bill Bandley",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "EMPLOYEES",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 6,
                      "ENTITY_NAME": "Craig Smith",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "EMPLOYEES",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 7,
                      "ENTITY_NAME": "Kim Long",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "EMPLOYEES",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 8,
                      "ENTITY_NAME": "Katrina Osmond",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "EMPLOYEES",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 12,
                      "ENTITY_NAME": "Kelly Rogers",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "VIPS",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              }
          ]
      }

      Parameters:
      entityIds - The SzEntityIds describing the Set of non-null Long entity ID's identifying the entities for which to build the network.
      maxDegrees - The maximum number of degrees for the path search between the specified entities. The maximum degrees of separation for the paths between entities must be specified so as to prevent the network growing beyond the desired size.
      buildOutDegrees - The number of relationship degrees to build out from each of the found entities on the network, or zero to prevent network build-out. If this is non-zero, the size of the network can be limited to a maximum total number of build-out entities for the whole network.
      buildOutMaxEntities - The maximum number of entities to build out for the entire network. This limits the size of the build-out network when the build-out degrees is non-zero.
      flags - The optional Set of SzFlag instances belonging to the SzFlagUsageGroup.SZ_FIND_NETWORK_FLAGS group to control how the operation is performed and the content of the response, or null to default to SzFlag.SZ_NO_FLAGS or SzFlag.SZ_FIND_NETWORK_DEFAULT_FLAGS for the default recommended flags.
      Returns:
      The JSON String describing the resultant entity network and the entities on the network.
      Throws:
      SzNotFoundException - If any of the entities for the specified entity ID's cannot be found.
      SzException - If a failure occurs.
      See Also:
    • findNetwork

      default String findNetwork(SzEntityIds entityIds, int maxDegrees, int buildOutDegrees, int buildOutMaxEntities) throws SzNotFoundException, SzException
      Convenience method for calling findNetwork(SzEntityIds, int, int, int, Set) with SzFlag.SZ_FIND_NETWORK_DEFAULT_FLAGS as the value for the flags parameter. See the findNetwork(SzEntityIds, int, int, int, Set) documentation for details.

      Usage:

      // How to find an entity network using entity ID's
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get entity ID's for the path endpoints (varies by application)
          Set<Long> entityIds = getNetworkEntityIds();
      
          // determine the maximum path degrees (varies by application)
          int maxDegrees = 3;
      
          // determine the degrees to build-out the network (varies by application)
          int buildOutDegrees = 0;
      
          // determine the max entities to build-out (varies by application)
          int buildOutMaxEntities = 10;
      
          // retrieve the entity network using the entity ID's
          String result = engine.findNetwork(SzEntityIds.of(entityIds),
                                             maxDegrees,
                                             buildOutDegrees,
                                             buildOutMaxEntities);
      
          // do something with the response JSON (varies by application)
          JsonObject  jsonObject  = Json.createReader(new StringReader(result)).readObject();
          JsonArray   pathArr     = jsonObject.getJsonArray("ENTITY_PATHS");
          for (JsonObject path : pathArr.getValuesAs(JsonObject.class)) {
              long      startEntityId = path.getJsonNumber("START_ENTITY_ID").longValue();
              long      endEntityId   = path.getJsonNumber("END_ENTITY_ID").longValue();
              JsonArray entityPathIds = path.getJsonArray("ENTITIES");
      
              for (JsonNumber number : entityPathIds.getValuesAs(JsonNumber.class)) {
                  long entityId = number.longValue();
      
                  ...
              }
          }
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Entity not found for entity ID.", e);
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to retrieve entity network.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "ENTITY_PATHS": [
              {
                  "START_ENTITY_ID": 1,
                  "END_ENTITY_ID": 7,
                  "ENTITIES": [
                      1,
                      2,
                      6,
                      7
                  ]
              },
              {
                  "START_ENTITY_ID": 1,
                  "END_ENTITY_ID": 12,
                  "ENTITIES": [
                      1,
                      5,
                      8,
                      12
                  ]
              },
              {
                  "START_ENTITY_ID": 7,
                  "END_ENTITY_ID": 12,
                  "ENTITIES": [
                  ]
              }
          ],
          "ENTITY_NETWORK_LINKS": [
              {
                  "MIN_ENTITY_ID": 1,
                  "MAX_ENTITY_ID": 2,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+PHONE-DOB",
                  "ERRULE_CODE": "SF1",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 1,
                  "MAX_ENTITY_ID": 5,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+ADDRESS-DOB",
                  "ERRULE_CODE": "SFF",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 2,
                  "MAX_ENTITY_ID": 6,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+PHONE+SURNAME-DOB",
                  "ERRULE_CODE": "CFF_SURNAME",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 5,
                  "MAX_ENTITY_ID": 8,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+PHONE-DOB",
                  "ERRULE_CODE": "SF1",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 6,
                  "MAX_ENTITY_ID": 7,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+ADDRESS-DOB",
                  "ERRULE_CODE": "SFF",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 8,
                  "MAX_ENTITY_ID": 12,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+ADDRESS-DOB",
                  "ERRULE_CODE": "SFF",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              }
          ],
          "ENTITIES": [
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 1,
                      "ENTITY_NAME": "Joseph Schmidt",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "PASSENGERS",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 2,
                      "ENTITY_NAME": "Joann Smith",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "PASSENGERS",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 5,
                      "ENTITY_NAME": "Bill Bandley",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "EMPLOYEES",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 6,
                      "ENTITY_NAME": "Craig Smith",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "EMPLOYEES",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 7,
                      "ENTITY_NAME": "Kim Long",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "EMPLOYEES",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 8,
                      "ENTITY_NAME": "Katrina Osmond",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "EMPLOYEES",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 12,
                      "ENTITY_NAME": "Kelly Rogers",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "VIPS",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              }
          ]
      }

      Parameters:
      entityIds - The SzEntityIds describing the Set of non-null Long entity ID's identifying the entities for which to build the network.
      maxDegrees - The maximum number of degrees for the path search between the specified entities. The maximum degrees of separation for the paths between entities must be specified so as to prevent the network growing beyond the desired size.
      buildOutDegrees - The number of relationship degrees to build out from each of the found entities on the network, or zero to prevent network build-out. If this is non-zero, the size of the network can be limited to a maximum total number of build-out entities for the whole network.
      buildOutMaxEntities - The maximum number of entities to build out for the entire network. This limits the size of the build-out network when the build-out degrees is non-zero.
      Returns:
      The JSON String describing the resultant entity network and the entities on the network.
      Throws:
      SzNotFoundException - If any of the entities for the specified entity ID's cannot be found.
      SzException - If a failure occurs.
      See Also:
    • findNetwork

      String findNetwork(SzRecordKeys recordKeys, int maxDegrees, int buildOutDegrees, int buildOutMaxEntities, Set<SzFlag> flags) throws SzUnknownDataSourceException, SzNotFoundException, SzException
      Retrieves a network of relationships among entities, specified by record IDs.

      WARNING: Entity networks may be very large due to the volume of inter-related data in the repository. The parameters of this method can be used to limit the information returned.

      The optionally specified Set of SzFlag instances not only control how the operation is performed but also the level of detail provided for the network and the entities on the network. The Set may contain any SzFlag value, but only flags belonging to the SzFlagUsageGroup.SZ_FIND_NETWORK_FLAGS group are guaranteed to be recognized (other SzFlag instances will be ignored unless they have equivalent bit flags).

      NOTE: EnumSet offers an efficient means of constructing a Set of SzFlag.

      Usage:

      // How to find an entity network using record keys
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get entity ID's for the path endpoints (varies by application)
          Set<SzRecordKey> recordKeys = getNetworkRecordKeys();
      
          // determine the maximum path degrees (varies by application)
          int maxDegrees = 3;
      
          // determine the degrees to build-out the network (varies by application)
          int buildOutDegrees = 0;
      
          // determine the max entities to build-out (varies by application)
          int buildOutMaxEntities = 10;
      
          // retrieve the entity network using the record keys
          String result = engine.findNetwork(SzRecordKeys.of(recordKeys),
                                             maxDegrees,
                                             buildOutDegrees,
                                             buildOutMaxEntities,
                                             SZ_FIND_NETWORK_DEFAULT_FLAGS);
      
          // do something with the response JSON (varies by application)
          JsonObject  jsonObject  = Json.createReader(new StringReader(result)).readObject();
          JsonArray   pathArr     = jsonObject.getJsonArray("ENTITY_PATHS");
          for (JsonObject path : pathArr.getValuesAs(JsonObject.class)) {
              long      startEntityId = path.getJsonNumber("START_ENTITY_ID").longValue();
              long      endEntityId   = path.getJsonNumber("END_ENTITY_ID").longValue();
              JsonArray entityPathIds = path.getJsonArray("ENTITIES");
      
              for (JsonNumber number : entityPathIds.getValuesAs(JsonNumber.class)) {
                  long entityId = number.longValue();
      
                  ...
              }
          }
      
      } catch (SzUnknownDataSourceException e) {
          // handle the unknown data source exception
          logError("Expected data source is not configured.", e);
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Entity not found for record key.", e);
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to retrieve entity network.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "ENTITY_PATHS": [
              {
                  "START_ENTITY_ID": 1,
                  "END_ENTITY_ID": 7,
                  "ENTITIES": [
                      1,
                      2,
                      6,
                      7
                  ]
              },
              {
                  "START_ENTITY_ID": 1,
                  "END_ENTITY_ID": 12,
                  "ENTITIES": [
                      1,
                      5,
                      8,
                      12
                  ]
              },
              {
                  "START_ENTITY_ID": 7,
                  "END_ENTITY_ID": 12,
                  "ENTITIES": [
                  ]
              }
          ],
          "ENTITY_NETWORK_LINKS": [
              {
                  "MIN_ENTITY_ID": 1,
                  "MAX_ENTITY_ID": 2,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+PHONE-DOB",
                  "ERRULE_CODE": "SF1",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 1,
                  "MAX_ENTITY_ID": 5,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+ADDRESS-DOB",
                  "ERRULE_CODE": "SFF",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 2,
                  "MAX_ENTITY_ID": 6,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+PHONE+SURNAME-DOB",
                  "ERRULE_CODE": "CFF_SURNAME",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 5,
                  "MAX_ENTITY_ID": 8,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+PHONE-DOB",
                  "ERRULE_CODE": "SF1",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 6,
                  "MAX_ENTITY_ID": 7,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+ADDRESS-DOB",
                  "ERRULE_CODE": "SFF",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 8,
                  "MAX_ENTITY_ID": 12,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+ADDRESS-DOB",
                  "ERRULE_CODE": "SFF",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              }
          ],
          "ENTITIES": [
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 1,
                      "ENTITY_NAME": "Joseph Schmidt",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "PASSENGERS",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 2,
                      "ENTITY_NAME": "Joann Smith",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "PASSENGERS",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 5,
                      "ENTITY_NAME": "Bill Bandley",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "EMPLOYEES",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 6,
                      "ENTITY_NAME": "Craig Smith",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "EMPLOYEES",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 7,
                      "ENTITY_NAME": "Kim Long",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "EMPLOYEES",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 8,
                      "ENTITY_NAME": "Katrina Osmond",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "EMPLOYEES",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 12,
                      "ENTITY_NAME": "Kelly Rogers",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "VIPS",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              }
          ]
      }

      Parameters:
      recordKeys - The SzRecordKeys describing the Set of non-null SzRecordKey instances providing the data source code and record ID pairs for the constituent records of the entities for which to build the network.
      maxDegrees - The maximum number of degrees for the path search between the specified entities. The maximum degrees of separation for the paths between entities must be specified so as to prevent the network growing beyond the desired size.
      buildOutDegrees - The number of relationship degrees to build out from each of the found entities on the network, or zero to prevent network build-out. If this is non-zero, the size of the network can be limited to a maximum total number of build-out entities for the whole network.
      buildOutMaxEntities - The maximum number of entities to build out for the entire network. This limits the size of the build-out network when the build-out degrees is non-zero.
      flags - The optional Set of SzFlag instances belonging to the SzFlagUsageGroup.SZ_FIND_NETWORK_FLAGS group to control how the operation is performed and the content of the response, or null to default to SzFlag.SZ_NO_FLAGS or SzFlag.SZ_FIND_NETWORK_DEFAULT_FLAGS for the default recommended flags.
      Returns:
      The JSON String describing the resultant entity network and the entities on the network.
      Throws:
      SzUnknownDataSourceException - If an unrecognized data source code is specified.
      SzNotFoundException - If any of the records for the specified data source code and record ID pairs cannot be found.
      SzException - If a failure occurs.
      See Also:
    • findNetwork

      default String findNetwork(SzRecordKeys recordKeys, int maxDegrees, int buildOutDegrees, int buildOutMaxEntities) throws SzUnknownDataSourceException, SzNotFoundException, SzException
      Convenience method for calling findNetwork(SzRecordKeys, int, int, int, Set) with SzFlag.SZ_FIND_NETWORK_DEFAULT_FLAGS as the value for the flags parameter. See the findNetwork(SzRecordKeys, int, int, int, Set) documentation for details.

      Usage:

      // How to find an entity network using record keys
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get entity ID's for the path endpoints (varies by application)
          Set<SzRecordKey> recordKeys = getNetworkRecordKeys();
      
          // determine the maximum path degrees (varies by application)
          int maxDegrees = 3;
      
          // determine the degrees to build-out the network (varies by application)
          int buildOutDegrees = 0;
      
          // determine the max entities to build-out (varies by application)
          int buildOutMaxEntities = 10;
      
          // retrieve the entity network using the record keys
          String result = engine.findNetwork(SzRecordKeys.of(recordKeys),
                                             maxDegrees,
                                             buildOutDegrees,
                                             buildOutMaxEntities);
      
          // do something with the response JSON (varies by application)
          JsonObject  jsonObject  = Json.createReader(new StringReader(result)).readObject();
          JsonArray   pathArr     = jsonObject.getJsonArray("ENTITY_PATHS");
          for (JsonObject path : pathArr.getValuesAs(JsonObject.class)) {
              long      startEntityId = path.getJsonNumber("START_ENTITY_ID").longValue();
              long      endEntityId   = path.getJsonNumber("END_ENTITY_ID").longValue();
              JsonArray entityPathIds = path.getJsonArray("ENTITIES");
      
              for (JsonNumber number : entityPathIds.getValuesAs(JsonNumber.class)) {
                  long entityId = number.longValue();
      
                  ...
              }
          }
      
      } catch (SzUnknownDataSourceException e) {
          // handle the unknown data source exception
          logError("Expected data source is not configured.", e);
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Entity not found for record key.", e);
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to retrieve entity network.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "ENTITY_PATHS": [
              {
                  "START_ENTITY_ID": 1,
                  "END_ENTITY_ID": 7,
                  "ENTITIES": [
                      1,
                      2,
                      6,
                      7
                  ]
              },
              {
                  "START_ENTITY_ID": 1,
                  "END_ENTITY_ID": 12,
                  "ENTITIES": [
                      1,
                      5,
                      8,
                      12
                  ]
              },
              {
                  "START_ENTITY_ID": 7,
                  "END_ENTITY_ID": 12,
                  "ENTITIES": [
                  ]
              }
          ],
          "ENTITY_NETWORK_LINKS": [
              {
                  "MIN_ENTITY_ID": 1,
                  "MAX_ENTITY_ID": 2,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+PHONE-DOB",
                  "ERRULE_CODE": "SF1",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 1,
                  "MAX_ENTITY_ID": 5,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+ADDRESS-DOB",
                  "ERRULE_CODE": "SFF",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 2,
                  "MAX_ENTITY_ID": 6,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+PHONE+SURNAME-DOB",
                  "ERRULE_CODE": "CFF_SURNAME",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 5,
                  "MAX_ENTITY_ID": 8,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+PHONE-DOB",
                  "ERRULE_CODE": "SF1",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 6,
                  "MAX_ENTITY_ID": 7,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+ADDRESS-DOB",
                  "ERRULE_CODE": "SFF",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              },
              {
                  "MIN_ENTITY_ID": 8,
                  "MAX_ENTITY_ID": 12,
                  "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                  "MATCH_KEY": "+ADDRESS-DOB",
                  "ERRULE_CODE": "SFF",
                  "IS_DISCLOSED": 0,
                  "IS_AMBIGUOUS": 0
              }
          ],
          "ENTITIES": [
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 1,
                      "ENTITY_NAME": "Joseph Schmidt",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "PASSENGERS",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 2,
                      "ENTITY_NAME": "Joann Smith",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "PASSENGERS",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 5,
                      "ENTITY_NAME": "Bill Bandley",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "EMPLOYEES",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 6,
                      "ENTITY_NAME": "Craig Smith",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "EMPLOYEES",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 7,
                      "ENTITY_NAME": "Kim Long",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "EMPLOYEES",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 8,
                      "ENTITY_NAME": "Katrina Osmond",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "EMPLOYEES",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 12,
                      "ENTITY_NAME": "Kelly Rogers",
                      "RECORD_SUMMARY": [
                          {
                              "DATA_SOURCE": "VIPS",
                              "RECORD_COUNT": 1
                          }
                      ]
                  }
              }
          ]
      }

      Parameters:
      recordKeys - The SzRecordKeys describing the Set of non-null SzRecordKey instances providing the data source code and record ID pairs for the constituent records of the entities for which to build the network.
      maxDegrees - The maximum number of degrees for the path search between the specified entities. The maximum degrees of separation for the paths between entities must be specified so as to prevent the network growing beyond the desired size.
      buildOutDegrees - The number of relationship degrees to build out from each of the found entities on the network, or zero to prevent network build-out. If this is non-zero, the size of the network can be limited to a maximum total number of build-out entities for the whole network.
      buildOutMaxEntities - The maximum number of entities to build out for the entire network. This limits the size of the build-out network when the build-out degrees is non-zero.
      Returns:
      The JSON String describing the resultant entity network and the entities on the network.
      Throws:
      SzUnknownDataSourceException - If an unrecognized data source code is specified.
      SzNotFoundException - If any of the records for the specified data source code and record ID pairs cannot be found.
      SzException - If a failure occurs.
      See Also:
    • whyRecordInEntity

      Describes the ways a record relates to the rest of its respective entity.

      The optionally specified Set of SzFlag instances that not only control how the operation is performed but also the level of detail provided for the entity and record being analyzed. The Set may contain any SzFlag value, but only flags belonging to the SzFlagUsageGroup.SZ_WHY_RECORD_IN_ENTITY_FLAGS group are guaranteed to be recognized (other SzFlag instances will be ignored unless they have equivalent bit flags).

      NOTE: EnumSet offers an efficient means of constructing a Set of SzFlag.

      Usage:

      // How to determine why a record is a member of its respective entity
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // determine why the record is part of its entity
          String results = engine.whyRecordInEntity(
              SzRecordKey.of("TEST", "ABC123"),
              SZ_WHY_RECORD_IN_ENTITY_DEFAULT_FLAGS);
      
          // do something with the response JSON (varies by application)
          JsonObject jsonObject = Json.createReader(new StringReader(results)).readObject();
          JsonArray resultsArr = jsonObject.getJsonArray("WHY_RESULTS");
          for (JsonObject result : resultsArr.getValuesAs(JsonObject.class)) {
              long entityId = result.getJsonNumber("ENTITY_ID").longValue();
      
              ...
          }
      
      } catch (SzUnknownDataSourceException e) {
          // handle the unknown data source exception
          logError("Expected data source is not configured.", e);
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Entity not found for record key.", e);
      
      } catch (SzException e) {
          // handle or rethrow the exception
          logError("Failed to reevaluate record.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "WHY_RESULTS": [
              {
                  "INTERNAL_ID": 100002,
                  "ENTITY_ID": 100002,
                  "FOCUS_RECORDS": [
                      {
                          "DATA_SOURCE": "TEST",
                          "RECORD_ID": "ABC123"
                      }
                  ],
                  "MATCH_INFO": {
                      "WHY_KEY": "+NAME+PHONE+EMAIL",
                      "WHY_ERRULE_CODE": "SF1_PNAME_CFF",
                      "MATCH_LEVEL_CODE": "RESOLVED",
                      "CANDIDATE_KEYS": {
                          "EMAIL_KEY": [
                              {
                                  "FEAT_ID": 100007,
                                  "FEAT_DESC": "joeschmoe@NOWHERE.COM"
                              }
                          ],
                          "NAMEPHONE_KEY": [
                              {
                                  "FEAT_ID": 100008,
                                  "FEAT_DESC": "JSF|XM|PHONE.PHONE_LAST_5=51212"
                              }
                          ],
                          "NAME_KEY": [
                              {
                                  "FEAT_ID": 100005,
                                  "FEAT_DESC": "JSF|XM"
                              }
                          ],
                          "PHONE_KEY": [
                              {
                                  "FEAT_ID": 100006,
                                  "FEAT_DESC": "7025551212"
                              }
                          ]
                      },
                      "FEATURE_SCORES": {
                          "EMAIL": [
                              {
                                  "INBOUND_FEAT_ID": 100003,
                                  "INBOUND_FEAT_DESC": "joeschmoe@nowhere.com",
                                  "CANDIDATE_FEAT_ID": 100003,
                                  "CANDIDATE_FEAT_DESC": "joeschmoe@nowhere.com",
                                  "SCORE": 100,
                                  "ADDITIONAL_SCORES": {
                                      "FULL_SCORE": 100
                                  },
                                  "SCORE_BUCKET": "SAME",
                                  "SCORE_BEHAVIOR": "F1"
                              }
                          ],
                          "NAME": [
                              {
                                  "INBOUND_FEAT_ID": 100001,
                                  "INBOUND_FEAT_DESC": "Joe Schmoe",
                                  "CANDIDATE_FEAT_ID": 100010,
                                  "CANDIDATE_FEAT_DESC": "Joseph Schmoe",
                                  "SCORE": 98,
                                  "ADDITIONAL_SCORES": {
                                      "GNR_FN": 98,
                                      "GNR_SN": -1,
                                      "GNR_GN": -1,
                                      "GENERATION_MATCH": -1,
                                      "GNR_ON": -1
                                  },
                                  "SCORE_BUCKET": "CLOSE",
                                  "SCORE_BEHAVIOR": "NAME"
                              }
                          ],
                          "PHONE": [
                              {
                                  "INBOUND_FEAT_ID": 100002,
                                  "INBOUND_FEAT_DESC": "702-555-1212",
                                  "CANDIDATE_FEAT_ID": 100002,
                                  "CANDIDATE_FEAT_DESC": "702-555-1212",
                                  "CANDIDATE_FEAT_USAGE_TYPE": "HOME",
                                  "SCORE": 100,
                                  "ADDITIONAL_SCORES": {
                                      "FULL_SCORE": 100
                                  },
                                  "SCORE_BUCKET": "SAME",
                                  "SCORE_BEHAVIOR": "FF"
                              }
                          ]
                      }
                  }
              }
          ],
          "ENTITIES": [
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 100002
                  }
              }
          ]
      }

      Parameters:
      recordKey - The SzRecordKey that has the data source code and record ID identifying the record.
      flags - The optional Set of SzFlag instances belonging to the SzFlagUsageGroup.SZ_WHY_RECORD_IN_ENTITY_FLAGS group to control how the operation is performed and the content of the response, or null to default to SzFlag.SZ_NO_FLAGS or SzFlag.SZ_WHY_RECORD_IN_ENTITY_DEFAULT_FLAGS for the default recommended flags.
      Returns:
      The JSON String describing why the record is included in its respective entity.
      Throws:
      SzUnknownDataSourceException - If an unrecognized data source code is specified.
      SzNotFoundException - If any of the records for the specified data source code and record ID pairs cannot be found.
      SzException - If a failure occurs.
      See Also:
    • whyRecordInEntity

      default String whyRecordInEntity(SzRecordKey recordKey) throws SzUnknownDataSourceException, SzNotFoundException, SzException
      Convenience method for calling whyRecordInEntity(SzRecordKey, Set) with SzFlag.SZ_WHY_RECORD_IN_ENTITY_DEFAULT_FLAGS as the value for the flags parameter. See the whyRecordInEntity(SzRecordKey, Set) documentation for details.

      Usage:

      // How to determine why a record is a member of its respective entity
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // determine why the record is part of its entity
          String results = engine.whyRecordInEntity(
              SzRecordKey.of("TEST", "ABC123"));
      
          // do something with the response JSON (varies by application)
          JsonObject jsonObject = Json.createReader(new StringReader(results)).readObject();
          JsonArray resultsArr = jsonObject.getJsonArray("WHY_RESULTS");
          for (JsonObject result : resultsArr.getValuesAs(JsonObject.class)) {
              long entityId = result.getJsonNumber("ENTITY_ID").longValue();
      
              ...
          }
      
      } catch (SzUnknownDataSourceException e) {
          // handle the unknown data source exception
          logError("Expected data source is not configured.", e);
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Entity not found for record key.", e);
      
      } catch (SzException e) {
          // handle or rethrow the exception
          logError("Failed to reevaluate record.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "WHY_RESULTS": [
              {
                  "INTERNAL_ID": 100002,
                  "ENTITY_ID": 100002,
                  "FOCUS_RECORDS": [
                      {
                          "DATA_SOURCE": "TEST",
                          "RECORD_ID": "ABC123"
                      }
                  ],
                  "MATCH_INFO": {
                      "WHY_KEY": "+NAME+PHONE+EMAIL",
                      "WHY_ERRULE_CODE": "SF1_PNAME_CFF",
                      "MATCH_LEVEL_CODE": "RESOLVED",
                      "CANDIDATE_KEYS": {
                          "EMAIL_KEY": [
                              {
                                  "FEAT_ID": 100007,
                                  "FEAT_DESC": "joeschmoe@NOWHERE.COM"
                              }
                          ],
                          "NAMEPHONE_KEY": [
                              {
                                  "FEAT_ID": 100008,
                                  "FEAT_DESC": "JSF|XM|PHONE.PHONE_LAST_5=51212"
                              }
                          ],
                          "NAME_KEY": [
                              {
                                  "FEAT_ID": 100005,
                                  "FEAT_DESC": "JSF|XM"
                              }
                          ],
                          "PHONE_KEY": [
                              {
                                  "FEAT_ID": 100006,
                                  "FEAT_DESC": "7025551212"
                              }
                          ]
                      },
                      "FEATURE_SCORES": {
                          "EMAIL": [
                              {
                                  "INBOUND_FEAT_ID": 100003,
                                  "INBOUND_FEAT_DESC": "joeschmoe@nowhere.com",
                                  "CANDIDATE_FEAT_ID": 100003,
                                  "CANDIDATE_FEAT_DESC": "joeschmoe@nowhere.com",
                                  "SCORE": 100,
                                  "ADDITIONAL_SCORES": {
                                      "FULL_SCORE": 100
                                  },
                                  "SCORE_BUCKET": "SAME",
                                  "SCORE_BEHAVIOR": "F1"
                              }
                          ],
                          "NAME": [
                              {
                                  "INBOUND_FEAT_ID": 100001,
                                  "INBOUND_FEAT_DESC": "Joe Schmoe",
                                  "CANDIDATE_FEAT_ID": 100010,
                                  "CANDIDATE_FEAT_DESC": "Joseph Schmoe",
                                  "SCORE": 98,
                                  "ADDITIONAL_SCORES": {
                                      "GNR_FN": 98,
                                      "GNR_SN": -1,
                                      "GNR_GN": -1,
                                      "GENERATION_MATCH": -1,
                                      "GNR_ON": -1
                                  },
                                  "SCORE_BUCKET": "CLOSE",
                                  "SCORE_BEHAVIOR": "NAME"
                              }
                          ],
                          "PHONE": [
                              {
                                  "INBOUND_FEAT_ID": 100002,
                                  "INBOUND_FEAT_DESC": "702-555-1212",
                                  "CANDIDATE_FEAT_ID": 100002,
                                  "CANDIDATE_FEAT_DESC": "702-555-1212",
                                  "CANDIDATE_FEAT_USAGE_TYPE": "HOME",
                                  "SCORE": 100,
                                  "ADDITIONAL_SCORES": {
                                      "FULL_SCORE": 100
                                  },
                                  "SCORE_BUCKET": "SAME",
                                  "SCORE_BEHAVIOR": "FF"
                              }
                          ]
                      }
                  }
              }
          ],
          "ENTITIES": [
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 100002
                  }
              }
          ]
      }

      Parameters:
      recordKey - The SzRecordKey that has the data source code and record ID identifying the record.
      Returns:
      The JSON String describing why the record is included in its respective entity.
      Throws:
      SzUnknownDataSourceException - If an unrecognized data source code is specified.
      SzNotFoundException - If any of the records for the specified data source code and record ID pairs cannot be found.
      SzException - If a failure occurs.
      See Also:
    • whyRecords

      Describes the ways two records relate to each other.

      The optionally specified Set of SzFlag instances that not only control how the operation is performed but also the level of detail provided for the entity and record being analyzed. The Set may contain any SzFlag value, but only flags belonging to the SzFlagUsageGroup.SZ_WHY_RECORDS_FLAGS group are guaranteed to be recognized (other SzFlag instances will be ignored unless they have equivalent bit flags).

      NOTE: EnumSet offers an efficient means of constructing a Set of SzFlag.

      Usage:

      // How to determine how two records are related
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get the records on which to operate (varies by application)
          SzRecordKey recordKey1 = getWhyRecordsKey1();
          SzRecordKey recordKey2 = getWhyRecordsKey2();
      
          // determine how the records are related
          String results = engine.whyRecords(recordKey1,
                                             recordKey2,
                                             SZ_WHY_RECORDS_DEFAULT_FLAGS);
      
          // do something with the response JSON (varies by application)
          JsonObject jsonObject = Json.createReader(new StringReader(results)).readObject();
          JsonArray resultsArr = jsonObject.getJsonArray("WHY_RESULTS");
          for (JsonObject result : resultsArr.getValuesAs(JsonObject.class)) {
              long entityId1 = result.getJsonNumber("ENTITY_ID").longValue();
              long entityId2 = result.getJsonNumber("ENTITY_ID_2").longValue();
      
              ...
          }
      
      } catch (SzUnknownDataSourceException e) {
          // handle the unknown data source exception
          logError("Expected data source is not configured.", e);
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Entity not found for record key.", e);
      
      } catch (SzException e) {
          // handle or rethrow the exception
          logError("Failed to reevaluate record.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "WHY_RESULTS": [
              {
                  "INTERNAL_ID": 5,
                  "ENTITY_ID": 5,
                  "FOCUS_RECORDS": [
                      {
                          "DATA_SOURCE": "EMPLOYEES",
                          "RECORD_ID": "MNO345"
                      }
                  ],
                  "INTERNAL_ID_2": 8,
                  "ENTITY_ID_2": 8,
                  "FOCUS_RECORDS_2": [
                      {
                          "DATA_SOURCE": "EMPLOYEES",
                          "RECORD_ID": "DEF890"
                      }
                  ],
                  "MATCH_INFO": {
                      "WHY_KEY": "+PHONE-DOB",
                      "WHY_ERRULE_CODE": "SF1",
                      "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                      "CANDIDATE_KEYS": {
                          "PHONE_KEY": [
                              {
                                  "FEAT_ID": 86,
                                  "FEAT_DESC": "8184442121"
                              }
                          ]
                      },
                      "FEATURE_SCORES": {
                          "ADDRESS": [
                              {
                                  "INBOUND_FEAT_ID": 3,
                                  "INBOUND_FEAT_DESC": "101 Main Street, Los Angeles, CA 90011",
                                  "CANDIDATE_FEAT_ID": 161,
                                  "CANDIDATE_FEAT_DESC": "707 Seventh Ave, Los Angeles, CA 90043",
                                  "SCORE": 30,
                                  "ADDITIONAL_SCORES": {
                                      "FULL_SCORE": 30
                                  },
                                  "SCORE_BUCKET": "NO_CHANCE",
                                  "SCORE_BEHAVIOR": "FF"
                              }
                          ],
                          "DOB": [
                              {
                                  "INBOUND_FEAT_ID": 81,
                                  "INBOUND_FEAT_DESC": "22-AUG-1981",
                                  "CANDIDATE_FEAT_ID": 160,
                                  "CANDIDATE_FEAT_DESC": "27-JUN-1980",
                                  "SCORE": 79,
                                  "ADDITIONAL_SCORES": {
                                      "FULL_SCORE": 79
                                  },
                                  "SCORE_BUCKET": "NO_CHANCE",
                                  "SCORE_BEHAVIOR": "FMES"
                              }
                          ],
                          "NAME": [
                              {
                                  "INBOUND_FEAT_ID": 80,
                                  "INBOUND_FEAT_DESC": "Bill Bandley",
                                  "CANDIDATE_FEAT_ID": 159,
                                  "CANDIDATE_FEAT_DESC": "Katrina Osmond",
                                  "SCORE": 21,
                                  "ADDITIONAL_SCORES": {
                                      "GNR_FN": 21,
                                      "GNR_SN": 0,
                                      "GNR_GN": 7,
                                      "GENERATION_MATCH": -1,
                                      "GNR_ON": -1
                                  },
                                  "SCORE_BUCKET": "NO_CHANCE",
                                  "SCORE_BEHAVIOR": "NAME"
                              }
                          ],
                          "PHONE": [
                              {
                                  "INBOUND_FEAT_ID": 83,
                                  "INBOUND_FEAT_DESC": "818-444-2121",
                                  "INBOUND_FEAT_USAGE_TYPE": "MOBILE",
                                  "CANDIDATE_FEAT_ID": 83,
                                  "CANDIDATE_FEAT_DESC": "818-444-2121",
                                  "CANDIDATE_FEAT_USAGE_TYPE": "MOBILE",
                                  "SCORE": 100,
                                  "ADDITIONAL_SCORES": {
                                      "FULL_SCORE": 100
                                  },
                                  "SCORE_BUCKET": "SAME",
                                  "SCORE_BEHAVIOR": "F1"
                              },
                              {
                                  "INBOUND_FEAT_ID": 83,
                                  "INBOUND_FEAT_DESC": "818-444-2121",
                                  "INBOUND_FEAT_USAGE_TYPE": "MOBILE",
                                  "CANDIDATE_FEAT_ID": 162,
                                  "CANDIDATE_FEAT_DESC": "818-111-2222",
                                  "CANDIDATE_FEAT_USAGE_TYPE": "HOME",
                                  "SCORE": 70,
                                  "ADDITIONAL_SCORES": {
                                      "FULL_SCORE": 70
                                  },
                                  "SCORE_BUCKET": "PLAUSIBLE",
                                  "SCORE_BEHAVIOR": "FF"
                              }
                          ]
                      },
                      "DISCLOSED_RELATIONS": {
                      }
                  }
              }
          ],
          "ENTITIES": [
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 5
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 8
                  }
              }
          ]
      }

      Parameters:
      recordKey1 - The non-null SzRecordKey providing the data source code and record ID for the first record.
      recordKey2 - The non-null SzRecordKey providing the data source code and record ID for the second record.
      flags - The optional Set of SzFlag instances belonging to the SzFlagUsageGroup.SZ_WHY_RECORDS_FLAGS group to control how the operation is performed and the content of the response, or null to default to SzFlag.SZ_NO_FLAGS or SzFlag.SZ_WHY_RECORDS_DEFAULT_FLAGS for the default recommended flags.
      Returns:
      The JSON String describing the ways in which the records are related to one another.
      Throws:
      SzUnknownDataSourceException - If an unrecognized data source code is specified.
      SzNotFoundException - If either of the records for the specified data source code and record ID pairs cannot be found.
      SzException - If a failure occurs.
      See Also:
    • whyRecords

      default String whyRecords(SzRecordKey recordKey1, SzRecordKey recordKey2) throws SzUnknownDataSourceException, SzNotFoundException, SzException
      Convenience method for calling whyRecords(SzRecordKey, SzRecordKey, Set) with SzFlag.SZ_WHY_RECORDS_DEFAULT_FLAGS as the value for the flags parameter. See the whyRecordInEntity(SzRecordKey, Set) documentation for details.

      Usage:

      // How to determine how two records are related
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get the records on which to operate (varies by application)
          SzRecordKey recordKey1 = getWhyRecordsKey1();
          SzRecordKey recordKey2 = getWhyRecordsKey2();
      
          // determine how the records are related
          String results = engine.whyRecords(recordKey1, recordKey2);
      
          // do something with the response JSON (varies by application)
          JsonObject jsonObject = Json.createReader(new StringReader(results)).readObject();
          JsonArray resultsArr = jsonObject.getJsonArray("WHY_RESULTS");
          for (JsonObject result : resultsArr.getValuesAs(JsonObject.class)) {
              long entityId1 = result.getJsonNumber("ENTITY_ID").longValue();
              long entityId2 = result.getJsonNumber("ENTITY_ID_2").longValue();
      
              ...
          }
      
      } catch (SzUnknownDataSourceException e) {
          // handle the unknown data source exception
          logError("Expected data source is not configured.", e);
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Entity not found for record key.", e);
      
      } catch (SzException e) {
          // handle or rethrow the exception
          logError("Failed to reevaluate record.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "WHY_RESULTS": [
              {
                  "INTERNAL_ID": 5,
                  "ENTITY_ID": 5,
                  "FOCUS_RECORDS": [
                      {
                          "DATA_SOURCE": "EMPLOYEES",
                          "RECORD_ID": "MNO345"
                      }
                  ],
                  "INTERNAL_ID_2": 8,
                  "ENTITY_ID_2": 8,
                  "FOCUS_RECORDS_2": [
                      {
                          "DATA_SOURCE": "EMPLOYEES",
                          "RECORD_ID": "DEF890"
                      }
                  ],
                  "MATCH_INFO": {
                      "WHY_KEY": "+PHONE-DOB",
                      "WHY_ERRULE_CODE": "SF1",
                      "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                      "CANDIDATE_KEYS": {
                          "PHONE_KEY": [
                              {
                                  "FEAT_ID": 86,
                                  "FEAT_DESC": "8184442121"
                              }
                          ]
                      },
                      "FEATURE_SCORES": {
                          "ADDRESS": [
                              {
                                  "INBOUND_FEAT_ID": 3,
                                  "INBOUND_FEAT_DESC": "101 Main Street, Los Angeles, CA 90011",
                                  "CANDIDATE_FEAT_ID": 161,
                                  "CANDIDATE_FEAT_DESC": "707 Seventh Ave, Los Angeles, CA 90043",
                                  "SCORE": 30,
                                  "ADDITIONAL_SCORES": {
                                      "FULL_SCORE": 30
                                  },
                                  "SCORE_BUCKET": "NO_CHANCE",
                                  "SCORE_BEHAVIOR": "FF"
                              }
                          ],
                          "DOB": [
                              {
                                  "INBOUND_FEAT_ID": 81,
                                  "INBOUND_FEAT_DESC": "22-AUG-1981",
                                  "CANDIDATE_FEAT_ID": 160,
                                  "CANDIDATE_FEAT_DESC": "27-JUN-1980",
                                  "SCORE": 79,
                                  "ADDITIONAL_SCORES": {
                                      "FULL_SCORE": 79
                                  },
                                  "SCORE_BUCKET": "NO_CHANCE",
                                  "SCORE_BEHAVIOR": "FMES"
                              }
                          ],
                          "NAME": [
                              {
                                  "INBOUND_FEAT_ID": 80,
                                  "INBOUND_FEAT_DESC": "Bill Bandley",
                                  "CANDIDATE_FEAT_ID": 159,
                                  "CANDIDATE_FEAT_DESC": "Katrina Osmond",
                                  "SCORE": 21,
                                  "ADDITIONAL_SCORES": {
                                      "GNR_FN": 21,
                                      "GNR_SN": 0,
                                      "GNR_GN": 7,
                                      "GENERATION_MATCH": -1,
                                      "GNR_ON": -1
                                  },
                                  "SCORE_BUCKET": "NO_CHANCE",
                                  "SCORE_BEHAVIOR": "NAME"
                              }
                          ],
                          "PHONE": [
                              {
                                  "INBOUND_FEAT_ID": 83,
                                  "INBOUND_FEAT_DESC": "818-444-2121",
                                  "INBOUND_FEAT_USAGE_TYPE": "MOBILE",
                                  "CANDIDATE_FEAT_ID": 83,
                                  "CANDIDATE_FEAT_DESC": "818-444-2121",
                                  "CANDIDATE_FEAT_USAGE_TYPE": "MOBILE",
                                  "SCORE": 100,
                                  "ADDITIONAL_SCORES": {
                                      "FULL_SCORE": 100
                                  },
                                  "SCORE_BUCKET": "SAME",
                                  "SCORE_BEHAVIOR": "F1"
                              },
                              {
                                  "INBOUND_FEAT_ID": 83,
                                  "INBOUND_FEAT_DESC": "818-444-2121",
                                  "INBOUND_FEAT_USAGE_TYPE": "MOBILE",
                                  "CANDIDATE_FEAT_ID": 162,
                                  "CANDIDATE_FEAT_DESC": "818-111-2222",
                                  "CANDIDATE_FEAT_USAGE_TYPE": "HOME",
                                  "SCORE": 70,
                                  "ADDITIONAL_SCORES": {
                                      "FULL_SCORE": 70
                                  },
                                  "SCORE_BUCKET": "PLAUSIBLE",
                                  "SCORE_BEHAVIOR": "FF"
                              }
                          ]
                      },
                      "DISCLOSED_RELATIONS": {
                      }
                  }
              }
          ],
          "ENTITIES": [
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 5
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 8
                  }
              }
          ]
      }

      Parameters:
      recordKey1 - The non-null SzRecordKey providing the data source code and record ID for the first record.
      recordKey2 - The non-null SzRecordKey providing the data source code and record ID for the second record.
      Returns:
      The JSON String describing the ways in which the records are related to one another.
      Throws:
      SzUnknownDataSourceException - If an unrecognized data source code is specified.
      SzNotFoundException - If either of the records for the specified data source code and record ID pairs cannot be found.
      SzException - If a failure occurs.
      See Also:
    • whyEntities

      String whyEntities(long entityId1, long entityId2, Set<SzFlag> flags) throws SzNotFoundException, SzException
      Describes the ways two entities relate to each other.

      The optionally specified Set of SzFlag instances that not only control how the operation is performed but also the level of detail provided for the entity and record being analyzed. The Set may contain any SzFlag value, but only flags belonging to the SzFlagUsageGroup.SZ_WHY_ENTITIES_FLAGS group are guaranteed to be recognized (other SzFlag instances will be ignored unless they have equivalent bit flags).

      NOTE: EnumSet offers an efficient means of constructing a Set of SzFlag.

      Usage:

      // How to determine how two entities are related
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get the entities on which to operate (varies by application)
          long entityId1 = getWhyEntitiesId1();
          long entityId2 = getWhyEntitiesId2();
      
          // determine how the entities are related
          String results = engine.whyEntities(entityId1,
                                              entityId2,
                                              SZ_WHY_ENTITIES_DEFAULT_FLAGS);
      
          // do something with the response JSON (varies by application)
          JsonObject jsonObject = Json.createReader(new StringReader(results)).readObject();
          JsonArray resultsArr = jsonObject.getJsonArray("WHY_RESULTS");
          for (JsonObject result : resultsArr.getValuesAs(JsonObject.class)) {
              long whyEntityId1 = result.getJsonNumber("ENTITY_ID").longValue();
              long whyEntityId2 = result.getJsonNumber("ENTITY_ID_2").longValue();
      
              ...
          }
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Entity not found for entity ID.", e);
      
      } catch (SzException e) {
          // handle or rethrow the exception
          logError("Failed to perform why entities.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "WHY_RESULTS": [
              {
                  "ENTITY_ID": 5,
                  "ENTITY_ID_2": 8,
                  "MATCH_INFO": {
                      "WHY_KEY": "+PHONE-DOB",
                      "WHY_ERRULE_CODE": "SF1",
                      "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                      "CANDIDATE_KEYS": {
                          "PHONE_KEY": [
                              {
                                  "FEAT_ID": 86,
                                  "FEAT_DESC": "8184442121"
                              }
                          ]
                      },
                      "FEATURE_SCORES": {
                          "ADDRESS": [
                              {
                                  "INBOUND_FEAT_ID": 3,
                                  "INBOUND_FEAT_DESC": "101 Main Street, Los Angeles, CA 90011",
                                  "CANDIDATE_FEAT_ID": 161,
                                  "CANDIDATE_FEAT_DESC": "707 Seventh Ave, Los Angeles, CA 90043",
                                  "SCORE": 30,
                                  "ADDITIONAL_SCORES": {
                                      "FULL_SCORE": 30
                                  },
                                  "SCORE_BUCKET": "NO_CHANCE",
                                  "SCORE_BEHAVIOR": "FF"
                              }
                          ],
                          "DOB": [
                              {
                                  "INBOUND_FEAT_ID": 81,
                                  "INBOUND_FEAT_DESC": "22-AUG-1981",
                                  "CANDIDATE_FEAT_ID": 160,
                                  "CANDIDATE_FEAT_DESC": "27-JUN-1980",
                                  "SCORE": 79,
                                  "ADDITIONAL_SCORES": {
                                      "FULL_SCORE": 79
                                  },
                                  "SCORE_BUCKET": "NO_CHANCE",
                                  "SCORE_BEHAVIOR": "FMES"
                              }
                          ],
                          "NAME": [
                              {
                                  "INBOUND_FEAT_ID": 80,
                                  "INBOUND_FEAT_DESC": "Bill Bandley",
                                  "CANDIDATE_FEAT_ID": 159,
                                  "CANDIDATE_FEAT_DESC": "Katrina Osmond",
                                  "SCORE": 21,
                                  "ADDITIONAL_SCORES": {
                                      "GNR_FN": 21,
                                      "GNR_SN": 0,
                                      "GNR_GN": 7,
                                      "GENERATION_MATCH": -1,
                                      "GNR_ON": -1
                                  },
                                  "SCORE_BUCKET": "NO_CHANCE",
                                  "SCORE_BEHAVIOR": "NAME"
                              }
                          ],
                          "PHONE": [
                              {
                                  "INBOUND_FEAT_ID": 83,
                                  "INBOUND_FEAT_DESC": "818-444-2121",
                                  "INBOUND_FEAT_USAGE_TYPE": "MOBILE",
                                  "CANDIDATE_FEAT_ID": 83,
                                  "CANDIDATE_FEAT_DESC": "818-444-2121",
                                  "CANDIDATE_FEAT_USAGE_TYPE": "MOBILE",
                                  "SCORE": 100,
                                  "ADDITIONAL_SCORES": {
                                      "FULL_SCORE": 100
                                  },
                                  "SCORE_BUCKET": "SAME",
                                  "SCORE_BEHAVIOR": "F1"
                              },
                              {
                                  "INBOUND_FEAT_ID": 83,
                                  "INBOUND_FEAT_DESC": "818-444-2121",
                                  "INBOUND_FEAT_USAGE_TYPE": "MOBILE",
                                  "CANDIDATE_FEAT_ID": 162,
                                  "CANDIDATE_FEAT_DESC": "818-111-2222",
                                  "CANDIDATE_FEAT_USAGE_TYPE": "HOME",
                                  "SCORE": 70,
                                  "ADDITIONAL_SCORES": {
                                      "FULL_SCORE": 70
                                  },
                                  "SCORE_BUCKET": "PLAUSIBLE",
                                  "SCORE_BEHAVIOR": "FF"
                              }
                          ]
                      },
                      "DISCLOSED_RELATIONS": {
                      }
                  }
              }
          ],
          "ENTITIES": [
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 5
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 8
                  }
              }
          ]
      }

      Parameters:
      entityId1 - The entity ID of the first entity.
      entityId2 - The entity ID of the second entity.
      flags - The optional Set of SzFlag instances belonging to the SzFlagUsageGroup.SZ_WHY_ENTITIES_FLAGS group to control how the operation is performed and the content of the response, or null to default to SzFlag.SZ_NO_FLAGS or SzFlag.SZ_WHY_ENTITIES_DEFAULT_FLAGS for the default recommended flags.
      Returns:
      The JSON String describing the ways in which the entities are related to one another.
      Throws:
      SzNotFoundException - If either of the entities for the specified entity ID's could not be found.
      SzException - If a failure occurs.
      See Also:
    • whyEntities

      default String whyEntities(long entityId1, long entityId2) throws SzNotFoundException, SzException
      Convenience method for calling whyEntities(long, long, Set) with SzFlag.SZ_WHY_ENTITIES_DEFAULT_FLAGS as the value for the flags parameter. See the whyEntities(long, long, Set) documentation for details.

      Usage:

      // How to determine how two entities are related
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get the entities on which to operate (varies by application)
          long entityId1 = getWhyEntitiesId1();
          long entityId2 = getWhyEntitiesId2();
      
          // determine how the entities are related
          String results = engine.whyEntities(entityId1, entityId2);
      
          // do something with the response JSON (varies by application)
          JsonObject jsonObject = Json.createReader(new StringReader(results)).readObject();
          JsonArray resultsArr = jsonObject.getJsonArray("WHY_RESULTS");
          for (JsonObject result : resultsArr.getValuesAs(JsonObject.class)) {
              long whyEntityId1 = result.getJsonNumber("ENTITY_ID").longValue();
              long whyEntityId2 = result.getJsonNumber("ENTITY_ID_2").longValue();
      
              ...
          }
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Entity not found for entity ID.", e);
      
      } catch (SzException e) {
          // handle or rethrow the exception
          logError("Failed to perform why entities.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "WHY_RESULTS": [
              {
                  "ENTITY_ID": 5,
                  "ENTITY_ID_2": 8,
                  "MATCH_INFO": {
                      "WHY_KEY": "+PHONE-DOB",
                      "WHY_ERRULE_CODE": "SF1",
                      "MATCH_LEVEL_CODE": "POSSIBLY_RELATED",
                      "CANDIDATE_KEYS": {
                          "PHONE_KEY": [
                              {
                                  "FEAT_ID": 86,
                                  "FEAT_DESC": "8184442121"
                              }
                          ]
                      },
                      "FEATURE_SCORES": {
                          "ADDRESS": [
                              {
                                  "INBOUND_FEAT_ID": 3,
                                  "INBOUND_FEAT_DESC": "101 Main Street, Los Angeles, CA 90011",
                                  "CANDIDATE_FEAT_ID": 161,
                                  "CANDIDATE_FEAT_DESC": "707 Seventh Ave, Los Angeles, CA 90043",
                                  "SCORE": 30,
                                  "ADDITIONAL_SCORES": {
                                      "FULL_SCORE": 30
                                  },
                                  "SCORE_BUCKET": "NO_CHANCE",
                                  "SCORE_BEHAVIOR": "FF"
                              }
                          ],
                          "DOB": [
                              {
                                  "INBOUND_FEAT_ID": 81,
                                  "INBOUND_FEAT_DESC": "22-AUG-1981",
                                  "CANDIDATE_FEAT_ID": 160,
                                  "CANDIDATE_FEAT_DESC": "27-JUN-1980",
                                  "SCORE": 79,
                                  "ADDITIONAL_SCORES": {
                                      "FULL_SCORE": 79
                                  },
                                  "SCORE_BUCKET": "NO_CHANCE",
                                  "SCORE_BEHAVIOR": "FMES"
                              }
                          ],
                          "NAME": [
                              {
                                  "INBOUND_FEAT_ID": 80,
                                  "INBOUND_FEAT_DESC": "Bill Bandley",
                                  "CANDIDATE_FEAT_ID": 159,
                                  "CANDIDATE_FEAT_DESC": "Katrina Osmond",
                                  "SCORE": 21,
                                  "ADDITIONAL_SCORES": {
                                      "GNR_FN": 21,
                                      "GNR_SN": 0,
                                      "GNR_GN": 7,
                                      "GENERATION_MATCH": -1,
                                      "GNR_ON": -1
                                  },
                                  "SCORE_BUCKET": "NO_CHANCE",
                                  "SCORE_BEHAVIOR": "NAME"
                              }
                          ],
                          "PHONE": [
                              {
                                  "INBOUND_FEAT_ID": 83,
                                  "INBOUND_FEAT_DESC": "818-444-2121",
                                  "INBOUND_FEAT_USAGE_TYPE": "MOBILE",
                                  "CANDIDATE_FEAT_ID": 83,
                                  "CANDIDATE_FEAT_DESC": "818-444-2121",
                                  "CANDIDATE_FEAT_USAGE_TYPE": "MOBILE",
                                  "SCORE": 100,
                                  "ADDITIONAL_SCORES": {
                                      "FULL_SCORE": 100
                                  },
                                  "SCORE_BUCKET": "SAME",
                                  "SCORE_BEHAVIOR": "F1"
                              },
                              {
                                  "INBOUND_FEAT_ID": 83,
                                  "INBOUND_FEAT_DESC": "818-444-2121",
                                  "INBOUND_FEAT_USAGE_TYPE": "MOBILE",
                                  "CANDIDATE_FEAT_ID": 162,
                                  "CANDIDATE_FEAT_DESC": "818-111-2222",
                                  "CANDIDATE_FEAT_USAGE_TYPE": "HOME",
                                  "SCORE": 70,
                                  "ADDITIONAL_SCORES": {
                                      "FULL_SCORE": 70
                                  },
                                  "SCORE_BUCKET": "PLAUSIBLE",
                                  "SCORE_BEHAVIOR": "FF"
                              }
                          ]
                      },
                      "DISCLOSED_RELATIONS": {
                      }
                  }
              }
          ],
          "ENTITIES": [
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 5
                  }
              },
              {
                  "RESOLVED_ENTITY": {
                      "ENTITY_ID": 8
                  }
              }
          ]
      }

      Parameters:
      entityId1 - The entity ID of the first entity.
      entityId2 - The entity ID of the second entity.
      Returns:
      The JSON String describing the ways in which the entities are related to one another.
      Throws:
      SzNotFoundException - If either of the entities for the specified entity ID's could not be found.
      SzException - If a failure occurs.
      See Also:
    • howEntity

      String howEntity(long entityId, Set<SzFlag> flags) throws SzNotFoundException, SzException
      Explains how an entity was constructed from its records.

      The optionally specified Set of SzFlag instances that not only control how the operation is performed but also the level of detail provided for the entity and record being analyzed. The Set may contain any SzFlag value, but only flags belonging to the SzFlagUsageGroup.SZ_HOW_FLAGS group are guaranteed to be recognized (other SzFlag instances will be ignored unless they have equivalent bit flags).

      NOTE: EnumSet offers an efficient means of constructing a Set of SzFlag.

      Usage:

      // How to retrieve the "how analysis" for an entity via its entity ID
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get the entity ID on which to operate (varies by application)
          long entityId = getEntityId();
      
          // determine how the entity was formed
          String results = engine.howEntity(entityId, SZ_HOW_ENTITY_DEFAULT_FLAGS);
      
          // do something with the response JSON (varies by application)
          JsonObject  jsonObject  = Json.createReader(new StringReader(results)).readObject();
          JsonObject  howResults  = jsonObject.getJsonObject("HOW_RESULTS");
          JsonArray   stepsArr    = howResults.getJsonArray("RESOLUTION_STEPS");
      
          for (JsonObject step : stepsArr.getValuesAs(JsonObject.class)) {
              JsonObject matchInfo = step.getJsonObject("MATCH_INFO");
      
              ...
          }
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Entity not found for entity ID.", e);
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to retrieve how analysis.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "HOW_RESULTS": {
              "RESOLUTION_STEPS": [
                  {
                      "STEP": 1,
                      "VIRTUAL_ENTITY_1": {
                          "VIRTUAL_ENTITY_ID": "V100002",
                          "MEMBER_RECORDS": [
                              {
                                  "INTERNAL_ID": 100002,
                                  "RECORDS": [
                                      {
                                          "DATA_SOURCE": "TEST",
                                          "RECORD_ID": "ABC123"
                                      }
                                  ]
                              }
                          ]
                      },
                      "VIRTUAL_ENTITY_2": {
                          "VIRTUAL_ENTITY_ID": "V100003",
                          "MEMBER_RECORDS": [
                              {
                                  "INTERNAL_ID": 100003,
                                  "RECORDS": [
                                      {
                                          "DATA_SOURCE": "TEST",
                                          "RECORD_ID": "XYZ987"
                                      }
                                  ]
                              }
                          ]
                      },
                      "INBOUND_VIRTUAL_ENTITY_ID": "V100003",
                      "RESULT_VIRTUAL_ENTITY_ID": "V100002-S1",
                      "MATCH_INFO": {
                          "MATCH_KEY": "+NAME+EMAIL",
                          "ERRULE_CODE": "SF1_CNAME",
                          "CANDIDATE_KEYS": {
                              "EMAIL_KEY": [
                                  {
                                      "FEAT_ID": 100007,
                                      "FEAT_DESC": "joeschmoe@NOWHERE.COM"
                                  }
                              ],
                              "NAME_KEY": [
                                  {
                                      "FEAT_ID": 100005,
                                      "FEAT_DESC": "JSF|XM"
                                  }
                              ]
                          },
                          "FEATURE_SCORES": {
                              "EMAIL": [
                                  {
                                      "INBOUND_FEAT_ID": 100003,
                                      "INBOUND_FEAT_DESC": "joeschmoe@nowhere.com",
                                      "CANDIDATE_FEAT_ID": 100003,
                                      "CANDIDATE_FEAT_DESC": "joeschmoe@nowhere.com",
                                      "SCORE": 100,
                                      "ADDITIONAL_SCORES": {
                                          "FULL_SCORE": 100
                                      },
                                      "SCORE_BUCKET": "SAME",
                                      "SCORE_BEHAVIOR": "F1"
                                  }
                              ],
                              "NAME": [
                                  {
                                      "INBOUND_FEAT_ID": 100010,
                                      "INBOUND_FEAT_DESC": "Joseph Schmoe",
                                      "CANDIDATE_FEAT_ID": 100001,
                                      "CANDIDATE_FEAT_DESC": "Joe Schmoe",
                                      "SCORE": 98,
                                      "ADDITIONAL_SCORES": {
                                          "GNR_FN": 98,
                                          "GNR_SN": -1,
                                          "GNR_GN": -1,
                                          "GENERATION_MATCH": -1,
                                          "GNR_ON": -1
                                      },
                                      "SCORE_BUCKET": "CLOSE",
                                      "SCORE_BEHAVIOR": "NAME"
                                  }
                              ],
                              "PHONE": [
                                  {
                                      "INBOUND_FEAT_ID": 100012,
                                      "INBOUND_FEAT_DESC": "702-555-1313",
                                      "INBOUND_FEAT_USAGE_TYPE": "WORK",
                                      "CANDIDATE_FEAT_ID": 100002,
                                      "CANDIDATE_FEAT_DESC": "702-555-1212",
                                      "SCORE": 85,
                                      "ADDITIONAL_SCORES": {
                                          "FULL_SCORE": 85
                                      },
                                      "SCORE_BUCKET": "LIKELY",
                                      "SCORE_BEHAVIOR": "FF"
                                  }
                              ]
                          }
                      }
                  },
                  {
                      "STEP": 2,
                      "VIRTUAL_ENTITY_1": {
                          "VIRTUAL_ENTITY_ID": "V100002-S1",
                          "MEMBER_RECORDS": [
                              {
                                  "INTERNAL_ID": 100002,
                                  "RECORDS": [
                                      {
                                          "DATA_SOURCE": "TEST",
                                          "RECORD_ID": "ABC123"
                                      }
                                  ]
                              },
                              {
                                  "INTERNAL_ID": 100003,
                                  "RECORDS": [
                                      {
                                          "DATA_SOURCE": "TEST",
                                          "RECORD_ID": "XYZ987"
                                      }
                                  ]
                              }
                          ]
                      },
                      "VIRTUAL_ENTITY_2": {
                          "VIRTUAL_ENTITY_ID": "V100004",
                          "MEMBER_RECORDS": [
                              {
                                  "INTERNAL_ID": 100004,
                                  "RECORDS": [
                                      {
                                          "DATA_SOURCE": "TEST",
                                          "RECORD_ID": "ZYX789"
                                      }
                                  ]
                              }
                          ]
                      },
                      "INBOUND_VIRTUAL_ENTITY_ID": "V100002-S1",
                      "RESULT_VIRTUAL_ENTITY_ID": "V100002-S2",
                      "MATCH_INFO": {
                          "MATCH_KEY": "+NAME+ADDRESS+PHONE",
                          "ERRULE_CODE": "MFF_CNAME",
                          "CANDIDATE_KEYS": {
                              "ADDR_KEY": [
                                  {
                                      "FEAT_ID": 100013,
                                      "FEAT_DESC": "101|MN||89101"
                                  },
                                  {
                                      "FEAT_ID": 100014,
                                      "FEAT_DESC": "101|MN||LS FKS"
                                  }
                              ],
                              "NAMEADDR_KEY": [
                                  {
                                      "FEAT_ID": 100016,
                                      "FEAT_DESC": "JSF|XM|ADDR_KEY.EXPRESSION=101|MN||LS FKS"
                                  },
                                  {
                                      "FEAT_ID": 100017,
                                      "FEAT_DESC": "JSF|XM|ADDR_KEY.EXPRESSION=101|MN||89101"
                                  }
                              ],
                              "NAMEPHONE_KEY": [
                                  {
                                      "FEAT_ID": 100008,
                                      "FEAT_DESC": "JSF|XM|PHONE.PHONE_LAST_5=51212"
                                  },
                                  {
                                      "FEAT_ID": 100020,
                                      "FEAT_DESC": "JSF|XM|PHONE.PHONE_LAST_5=51313"
                                  }
                              ],
                              "NAMEREGION_KEY": [
                                  {
                                      "FEAT_ID": 100018,
                                      "FEAT_DESC": "JSF|XM|POST=89101"
                                  },
                                  {
                                      "FEAT_ID": 100019,
                                      "FEAT_DESC": "JSF|XM|ADDRESS.CITY_STD=LS FKS"
                                  }
                              ],
                              "NAME_KEY": [
                                  {
                                      "FEAT_ID": 100005,
                                      "FEAT_DESC": "JSF|XM"
                                  }
                              ],
                              "PHONE_KEY": [
                                  {
                                      "FEAT_ID": 100006,
                                      "FEAT_DESC": "7025551212"
                                  },
                                  {
                                      "FEAT_ID": 100015,
                                      "FEAT_DESC": "7025551313"
                                  }
                              ]
                          },
                          "FEATURE_SCORES": {
                              "ADDRESS": [
                                  {
                                      "INBOUND_FEAT_ID": 100011,
                                      "INBOUND_FEAT_DESC": "101 Main St.; Las Vegas, NV 89101",
                                      "CANDIDATE_FEAT_ID": 100011,
                                      "CANDIDATE_FEAT_DESC": "101 Main St.; Las Vegas, NV 89101",
                                      "SCORE": 100,
                                      "ADDITIONAL_SCORES": {
                                          "FULL_SCORE": 100
                                      },
                                      "SCORE_BUCKET": "SAME",
                                      "SCORE_BEHAVIOR": "FF"
                                  }
                              ],
                              "NAME": [
                                  {
                                      "INBOUND_FEAT_ID": 100010,
                                      "INBOUND_FEAT_DESC": "Joseph Schmoe",
                                      "CANDIDATE_FEAT_ID": 100021,
                                      "CANDIDATE_FEAT_DESC": "Joseph W Schmoe",
                                      "SCORE": 92,
                                      "ADDITIONAL_SCORES": {
                                          "GNR_FN": 92,
                                          "GNR_SN": -1,
                                          "GNR_GN": -1,
                                          "GENERATION_MATCH": -1,
                                          "GNR_ON": -1
                                      },
                                      "SCORE_BUCKET": "CLOSE",
                                      "SCORE_BEHAVIOR": "NAME"
                                  }
                              ],
                              "PHONE": [
                                  {
                                      "INBOUND_FEAT_ID": 100002,
                                      "INBOUND_FEAT_DESC": "702-555-1212",
                                      "CANDIDATE_FEAT_ID": 100002,
                                      "CANDIDATE_FEAT_DESC": "702-555-1212",
                                      "CANDIDATE_FEAT_USAGE_TYPE": "HOME",
                                      "SCORE": 100,
                                      "ADDITIONAL_SCORES": {
                                          "FULL_SCORE": 100
                                      },
                                      "SCORE_BUCKET": "SAME",
                                      "SCORE_BEHAVIOR": "FF"
                                  }
                              ]
                          }
                      }
                  }
              ],
              "FINAL_STATE": {
                  "NEED_REEVALUATION": 0,
                  "VIRTUAL_ENTITIES": [
                      {
                          "VIRTUAL_ENTITY_ID": "V100002-S2",
                          "MEMBER_RECORDS": [
                              {
                                  "INTERNAL_ID": 100002,
                                  "RECORDS": [
                                      {
                                          "DATA_SOURCE": "TEST",
                                          "RECORD_ID": "ABC123"
                                      }
                                  ]
                              },
                              {
                                  "INTERNAL_ID": 100003,
                                  "RECORDS": [
                                      {
                                          "DATA_SOURCE": "TEST",
                                          "RECORD_ID": "XYZ987"
                                      }
                                  ]
                              },
                              {
                                  "INTERNAL_ID": 100004,
                                  "RECORDS": [
                                      {
                                          "DATA_SOURCE": "TEST",
                                          "RECORD_ID": "ZYX789"
                                      }
                                  ]
                              }
                          ]
                      }
                  ]
              }
          }
      }

      Parameters:
      entityId - The entity ID of the entity.
      flags - The optional Set of SzFlag instances belonging to the SzFlagUsageGroup.SZ_HOW_FLAGS group to control how the operation is performed and the content of the response, or null to default to SzFlag.SZ_NO_FLAGS or SzFlag.SZ_HOW_ENTITY_DEFAULT_FLAGS for the default recommended flags.
      Returns:
      The JSON String describing the how the entity was constructed.
      Throws:
      SzNotFoundException - If the entity for the specified entity ID could not be found.
      SzException - If a failure occurs.
      See Also:
    • howEntity

      default String howEntity(long entityId) throws SzNotFoundException, SzException
      Convenience method for calling howEntity(long, Set) using SzFlags.SZ_HOW_ENTITY_DEFAULT_FLAGS as the value for the flags parameter. See the howEntity(long, Set) documentation for details.

      Usage:

      // How to retrieve the "how analysis" for an entity via its entity ID
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get the entity ID on which to operate (varies by application)
          long entityId = getEntityId();
      
          // determine how the entity was formed
          String results = engine.howEntity(entityId);
      
          // do something with the response JSON (varies by application)
          JsonObject  jsonObject  = Json.createReader(new StringReader(results)).readObject();
          JsonObject  howResults  = jsonObject.getJsonObject("HOW_RESULTS");
          JsonArray   stepsArr    = howResults.getJsonArray("RESOLUTION_STEPS");
      
          for (JsonObject step : stepsArr.getValuesAs(JsonObject.class)) {
              JsonObject matchInfo = step.getJsonObject("MATCH_INFO");
      
              ...
          }
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Entity not found for entity ID.", e);
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to retrieve how analysis.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "HOW_RESULTS": {
              "RESOLUTION_STEPS": [
                  {
                      "STEP": 1,
                      "VIRTUAL_ENTITY_1": {
                          "VIRTUAL_ENTITY_ID": "V100002",
                          "MEMBER_RECORDS": [
                              {
                                  "INTERNAL_ID": 100002,
                                  "RECORDS": [
                                      {
                                          "DATA_SOURCE": "TEST",
                                          "RECORD_ID": "ABC123"
                                      }
                                  ]
                              }
                          ]
                      },
                      "VIRTUAL_ENTITY_2": {
                          "VIRTUAL_ENTITY_ID": "V100003",
                          "MEMBER_RECORDS": [
                              {
                                  "INTERNAL_ID": 100003,
                                  "RECORDS": [
                                      {
                                          "DATA_SOURCE": "TEST",
                                          "RECORD_ID": "XYZ987"
                                      }
                                  ]
                              }
                          ]
                      },
                      "INBOUND_VIRTUAL_ENTITY_ID": "V100003",
                      "RESULT_VIRTUAL_ENTITY_ID": "V100002-S1",
                      "MATCH_INFO": {
                          "MATCH_KEY": "+NAME+EMAIL",
                          "ERRULE_CODE": "SF1_CNAME",
                          "CANDIDATE_KEYS": {
                              "EMAIL_KEY": [
                                  {
                                      "FEAT_ID": 100007,
                                      "FEAT_DESC": "joeschmoe@NOWHERE.COM"
                                  }
                              ],
                              "NAME_KEY": [
                                  {
                                      "FEAT_ID": 100005,
                                      "FEAT_DESC": "JSF|XM"
                                  }
                              ]
                          },
                          "FEATURE_SCORES": {
                              "EMAIL": [
                                  {
                                      "INBOUND_FEAT_ID": 100003,
                                      "INBOUND_FEAT_DESC": "joeschmoe@nowhere.com",
                                      "CANDIDATE_FEAT_ID": 100003,
                                      "CANDIDATE_FEAT_DESC": "joeschmoe@nowhere.com",
                                      "SCORE": 100,
                                      "ADDITIONAL_SCORES": {
                                          "FULL_SCORE": 100
                                      },
                                      "SCORE_BUCKET": "SAME",
                                      "SCORE_BEHAVIOR": "F1"
                                  }
                              ],
                              "NAME": [
                                  {
                                      "INBOUND_FEAT_ID": 100010,
                                      "INBOUND_FEAT_DESC": "Joseph Schmoe",
                                      "CANDIDATE_FEAT_ID": 100001,
                                      "CANDIDATE_FEAT_DESC": "Joe Schmoe",
                                      "SCORE": 98,
                                      "ADDITIONAL_SCORES": {
                                          "GNR_FN": 98,
                                          "GNR_SN": -1,
                                          "GNR_GN": -1,
                                          "GENERATION_MATCH": -1,
                                          "GNR_ON": -1
                                      },
                                      "SCORE_BUCKET": "CLOSE",
                                      "SCORE_BEHAVIOR": "NAME"
                                  }
                              ],
                              "PHONE": [
                                  {
                                      "INBOUND_FEAT_ID": 100012,
                                      "INBOUND_FEAT_DESC": "702-555-1313",
                                      "INBOUND_FEAT_USAGE_TYPE": "WORK",
                                      "CANDIDATE_FEAT_ID": 100002,
                                      "CANDIDATE_FEAT_DESC": "702-555-1212",
                                      "SCORE": 85,
                                      "ADDITIONAL_SCORES": {
                                          "FULL_SCORE": 85
                                      },
                                      "SCORE_BUCKET": "LIKELY",
                                      "SCORE_BEHAVIOR": "FF"
                                  }
                              ]
                          }
                      }
                  },
                  {
                      "STEP": 2,
                      "VIRTUAL_ENTITY_1": {
                          "VIRTUAL_ENTITY_ID": "V100002-S1",
                          "MEMBER_RECORDS": [
                              {
                                  "INTERNAL_ID": 100002,
                                  "RECORDS": [
                                      {
                                          "DATA_SOURCE": "TEST",
                                          "RECORD_ID": "ABC123"
                                      }
                                  ]
                              },
                              {
                                  "INTERNAL_ID": 100003,
                                  "RECORDS": [
                                      {
                                          "DATA_SOURCE": "TEST",
                                          "RECORD_ID": "XYZ987"
                                      }
                                  ]
                              }
                          ]
                      },
                      "VIRTUAL_ENTITY_2": {
                          "VIRTUAL_ENTITY_ID": "V100004",
                          "MEMBER_RECORDS": [
                              {
                                  "INTERNAL_ID": 100004,
                                  "RECORDS": [
                                      {
                                          "DATA_SOURCE": "TEST",
                                          "RECORD_ID": "ZYX789"
                                      }
                                  ]
                              }
                          ]
                      },
                      "INBOUND_VIRTUAL_ENTITY_ID": "V100002-S1",
                      "RESULT_VIRTUAL_ENTITY_ID": "V100002-S2",
                      "MATCH_INFO": {
                          "MATCH_KEY": "+NAME+ADDRESS+PHONE",
                          "ERRULE_CODE": "MFF_CNAME",
                          "CANDIDATE_KEYS": {
                              "ADDR_KEY": [
                                  {
                                      "FEAT_ID": 100013,
                                      "FEAT_DESC": "101|MN||89101"
                                  },
                                  {
                                      "FEAT_ID": 100014,
                                      "FEAT_DESC": "101|MN||LS FKS"
                                  }
                              ],
                              "NAMEADDR_KEY": [
                                  {
                                      "FEAT_ID": 100016,
                                      "FEAT_DESC": "JSF|XM|ADDR_KEY.EXPRESSION=101|MN||LS FKS"
                                  },
                                  {
                                      "FEAT_ID": 100017,
                                      "FEAT_DESC": "JSF|XM|ADDR_KEY.EXPRESSION=101|MN||89101"
                                  }
                              ],
                              "NAMEPHONE_KEY": [
                                  {
                                      "FEAT_ID": 100008,
                                      "FEAT_DESC": "JSF|XM|PHONE.PHONE_LAST_5=51212"
                                  },
                                  {
                                      "FEAT_ID": 100020,
                                      "FEAT_DESC": "JSF|XM|PHONE.PHONE_LAST_5=51313"
                                  }
                              ],
                              "NAMEREGION_KEY": [
                                  {
                                      "FEAT_ID": 100018,
                                      "FEAT_DESC": "JSF|XM|POST=89101"
                                  },
                                  {
                                      "FEAT_ID": 100019,
                                      "FEAT_DESC": "JSF|XM|ADDRESS.CITY_STD=LS FKS"
                                  }
                              ],
                              "NAME_KEY": [
                                  {
                                      "FEAT_ID": 100005,
                                      "FEAT_DESC": "JSF|XM"
                                  }
                              ],
                              "PHONE_KEY": [
                                  {
                                      "FEAT_ID": 100006,
                                      "FEAT_DESC": "7025551212"
                                  },
                                  {
                                      "FEAT_ID": 100015,
                                      "FEAT_DESC": "7025551313"
                                  }
                              ]
                          },
                          "FEATURE_SCORES": {
                              "ADDRESS": [
                                  {
                                      "INBOUND_FEAT_ID": 100011,
                                      "INBOUND_FEAT_DESC": "101 Main St.; Las Vegas, NV 89101",
                                      "CANDIDATE_FEAT_ID": 100011,
                                      "CANDIDATE_FEAT_DESC": "101 Main St.; Las Vegas, NV 89101",
                                      "SCORE": 100,
                                      "ADDITIONAL_SCORES": {
                                          "FULL_SCORE": 100
                                      },
                                      "SCORE_BUCKET": "SAME",
                                      "SCORE_BEHAVIOR": "FF"
                                  }
                              ],
                              "NAME": [
                                  {
                                      "INBOUND_FEAT_ID": 100010,
                                      "INBOUND_FEAT_DESC": "Joseph Schmoe",
                                      "CANDIDATE_FEAT_ID": 100021,
                                      "CANDIDATE_FEAT_DESC": "Joseph W Schmoe",
                                      "SCORE": 92,
                                      "ADDITIONAL_SCORES": {
                                          "GNR_FN": 92,
                                          "GNR_SN": -1,
                                          "GNR_GN": -1,
                                          "GENERATION_MATCH": -1,
                                          "GNR_ON": -1
                                      },
                                      "SCORE_BUCKET": "CLOSE",
                                      "SCORE_BEHAVIOR": "NAME"
                                  }
                              ],
                              "PHONE": [
                                  {
                                      "INBOUND_FEAT_ID": 100002,
                                      "INBOUND_FEAT_DESC": "702-555-1212",
                                      "CANDIDATE_FEAT_ID": 100002,
                                      "CANDIDATE_FEAT_DESC": "702-555-1212",
                                      "CANDIDATE_FEAT_USAGE_TYPE": "HOME",
                                      "SCORE": 100,
                                      "ADDITIONAL_SCORES": {
                                          "FULL_SCORE": 100
                                      },
                                      "SCORE_BUCKET": "SAME",
                                      "SCORE_BEHAVIOR": "FF"
                                  }
                              ]
                          }
                      }
                  }
              ],
              "FINAL_STATE": {
                  "NEED_REEVALUATION": 0,
                  "VIRTUAL_ENTITIES": [
                      {
                          "VIRTUAL_ENTITY_ID": "V100002-S2",
                          "MEMBER_RECORDS": [
                              {
                                  "INTERNAL_ID": 100002,
                                  "RECORDS": [
                                      {
                                          "DATA_SOURCE": "TEST",
                                          "RECORD_ID": "ABC123"
                                      }
                                  ]
                              },
                              {
                                  "INTERNAL_ID": 100003,
                                  "RECORDS": [
                                      {
                                          "DATA_SOURCE": "TEST",
                                          "RECORD_ID": "XYZ987"
                                      }
                                  ]
                              },
                              {
                                  "INTERNAL_ID": 100004,
                                  "RECORDS": [
                                      {
                                          "DATA_SOURCE": "TEST",
                                          "RECORD_ID": "ZYX789"
                                      }
                                  ]
                              }
                          ]
                      }
                  ]
              }
          }
      }

      Parameters:
      entityId - The entity ID of the entity.
      Returns:
      The JSON String describing the how the entity was constructed.
      Throws:
      SzNotFoundException - If the entity for the specified entity ID could not be found.
      SzException - If a failure occurs.
      See Also:
    • getVirtualEntity

      Describes how an entity would look if composed of a given set of records.

      Virtual entities do not have relationships.

      The optionally specified Set of SzFlag instances that not only control how the operation is performed but also the level of detail provided for the entity and record being analyzed. The Set may contain any SzFlag value, but only flags belonging to the SzFlagUsageGroup.SZ_VIRTUAL_ENTITY_FLAGS group are guaranteed to be recognized (other SzFlag instances will be ignored unless they have equivalent bit flags).

      NOTE: EnumSet offers an efficient means of constructing a Set of SzFlag.

      Usage:

      // How to retrieve a virtual entity via a set of record keys
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get the records to operate on (varies by application)
          Set<SzRecordKey> recordKeys = getVirtualEntityRecordKeys();
      
          // retrieve the virtual entity for the record keys
          String result = engine.getVirtualEntity(recordKeys, SZ_VIRTUAL_ENTITY_DEFAULT_FLAGS);
      
          // do something with the response JSON (varies by application)
          JsonObject  jsonObject  = Json.createReader(new StringReader(result)).readObject();
          JsonObject  entity      = jsonObject.getJsonObject("RESOLVED_ENTITY");
          String      entityName  = entity.getString("ENTITY_NAME");
      
          ...
      
          if (jsonObject.containsKey("RECORDS")) {
              JsonArray recordArr = jsonObject.getJsonArray("RECORDS");
              for (JsonObject record : recordArr.getValuesAs(JsonObject.class)) {
                  String dataSource = record.getString("DATA_SOURCE");
                  String recordId   = record.getString("RECORD_ID");
      
                  ...
              }
          }
      
      } catch (SzUnknownDataSourceException e) {
          // handle the unknown data source exception
          logError("Expected data source is not configured.", e);
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Specified record key was not found.", e);
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to retrieve virtual entity.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "RESOLVED_ENTITY": {
              "ENTITY_ID": 2,
              "ENTITY_NAME": "Joann Smith",
              "FEATURES": {
                  "ADDRESS": [
                      {
                          "FEAT_DESC": "101 Fifth Ave, Los Angeles, CA 90018",
                          "LIB_FEAT_ID": 22,
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "101 Fifth Ave, Los Angeles, CA 90018",
                                  "LIB_FEAT_ID": 22
                              }
                          ]
                      },
                      {
                          "FEAT_DESC": "400 River Street, Pasadena, CA 90034",
                          "LIB_FEAT_ID": 65,
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "400 River Street, Pasadena, CA 90034",
                                  "LIB_FEAT_ID": 65
                              }
                          ]
                      }
                  ],
                  "DOB": [
                      {
                          "FEAT_DESC": "15-MAR-1982",
                          "LIB_FEAT_ID": 21,
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "15-MAR-1982",
                                  "LIB_FEAT_ID": 21
                              }
                          ]
                      },
                      {
                          "FEAT_DESC": "17-DEC-1977",
                          "LIB_FEAT_ID": 48,
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "17-DEC-1977",
                                  "LIB_FEAT_ID": 48
                              }
                          ]
                      },
                      {
                          "FEAT_DESC": "23-MAY-1973",
                          "LIB_FEAT_ID": 64,
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "23-MAY-1973",
                                  "LIB_FEAT_ID": 64
                              }
                          ]
                      }
                  ],
                  "NAME": [
                      {
                          "FEAT_DESC": "Jane Donaldson",
                          "LIB_FEAT_ID": 63,
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "Jane Donaldson",
                                  "LIB_FEAT_ID": 63
                              }
                          ]
                      },
                      {
                          "FEAT_DESC": "Joann Smith",
                          "LIB_FEAT_ID": 20,
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "Joann Smith",
                                  "LIB_FEAT_ID": 20
                              }
                          ]
                      },
                      {
                          "FEAT_DESC": "John Parker",
                          "LIB_FEAT_ID": 47,
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "John Parker",
                                  "LIB_FEAT_ID": 47
                              }
                          ]
                      }
                  ],
                  "PHONE": [
                      {
                          "FEAT_DESC": "818-222-3131",
                          "LIB_FEAT_ID": 66,
                          "USAGE_TYPE": "HOME",
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "818-222-3131",
                                  "LIB_FEAT_ID": 66
                              }
                          ]
                      },
                      {
                          "FEAT_DESC": "818-888-3939",
                          "LIB_FEAT_ID": 23,
                          "USAGE_TYPE": "HOME",
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "818-888-3939",
                                  "LIB_FEAT_ID": 23
                              }
                          ]
                      },
                      {
                          "FEAT_DESC": "818-999-2121",
                          "LIB_FEAT_ID": 49,
                          "USAGE_TYPE": "HOME",
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "818-999-2121",
                                  "LIB_FEAT_ID": 49
                              }
                          ]
                      },
                      {
                          "FEAT_DESC": "213-555-1212",
                          "LIB_FEAT_ID": 5,
                          "USAGE_TYPE": "MOBILE",
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "213-555-1212",
                                  "LIB_FEAT_ID": 5
                              }
                          ]
                      },
                      {
                          "FEAT_DESC": "818-555-1313",
                          "LIB_FEAT_ID": 50,
                          "USAGE_TYPE": "MOBILE",
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "818-555-1313",
                                  "LIB_FEAT_ID": 50
                              }
                          ]
                      }
                  ]
              },
              "RECORD_SUMMARY": [
                  {
                      "DATA_SOURCE": "PASSENGERS",
                      "RECORD_COUNT": 3
                  }
              ],
              "RECORDS": [
                  {
                      "DATA_SOURCE": "PASSENGERS",
                      "RECORD_ID": "DEF456",
                      "INTERNAL_ID": 2
                  },
                  {
                      "DATA_SOURCE": "PASSENGERS",
                      "RECORD_ID": "GHI789",
                      "INTERNAL_ID": 3
                  },
                  {
                      "DATA_SOURCE": "PASSENGERS",
                      "RECORD_ID": "JKL012",
                      "INTERNAL_ID": 4
                  }
              ]
          }
      }

      Parameters:
      recordKeys - The non-null non-empty Set of non-null SzRecordKey instances that identify the records to use to build the virtual entity.
      flags - The optional Set of SzFlag instances belonging to the SzFlagUsageGroup.SZ_VIRTUAL_ENTITY_FLAGS group to control how the operation is performed and the content of the response, or null to default to SzFlag.SZ_NO_FLAGS or SzFlag.SZ_VIRTUAL_ENTITY_DEFAULT_FLAGS for the default recommended flags.
      Returns:
      The JSON String describing the virtual entity having the specified constituent records.
      Throws:
      SzUnknownDataSourceException - If an unrecognized data source code is specified.
      SzNotFoundException - If any of the records for the specified data source code and record ID pairs cannot be found.
      SzException - If a failure occurs.
      See Also:
    • getVirtualEntity

      default String getVirtualEntity(Set<SzRecordKey> recordKeys) throws SzUnknownDataSourceException, SzNotFoundException, SzException
      Convenience method for calling getVirtualEntity(Set, Set) using SzFlag.SZ_VIRTUAL_ENTITY_DEFAULT_FLAGS as the value for the flags parameter. See the getVirtualEntity(Set, Set) documentation for details.

      Usage:

      // How to retrieve a virtual entity via a set of record keys
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get the records to operate on (varies by application)
          Set<SzRecordKey> recordKeys = getVirtualEntityRecordKeys();
      
          // retrieve the virtual entity for the record keys
          String result = engine.getVirtualEntity(recordKeys);
      
          // do something with the response JSON (varies by application)
          JsonObject  jsonObject  = Json.createReader(new StringReader(result)).readObject();
          JsonObject  entity      = jsonObject.getJsonObject("RESOLVED_ENTITY");
          String      entityName  = entity.getString("ENTITY_NAME");
      
          ...
      
          if (jsonObject.containsKey("RECORDS")) {
              JsonArray recordArr = jsonObject.getJsonArray("RECORDS");
              for (JsonObject record : recordArr.getValuesAs(JsonObject.class)) {
                  String dataSource = record.getString("DATA_SOURCE");
                  String recordId   = record.getString("RECORD_ID");
      
                  ...
              }
          }
      
      } catch (SzUnknownDataSourceException e) {
          // handle the unknown data source exception
          logError("Expected data source is not configured.", e);
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Specified record key was not found.", e);
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to retrieve virtual entity.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "RESOLVED_ENTITY": {
              "ENTITY_ID": 2,
              "ENTITY_NAME": "Joann Smith",
              "FEATURES": {
                  "ADDRESS": [
                      {
                          "FEAT_DESC": "101 Fifth Ave, Los Angeles, CA 90018",
                          "LIB_FEAT_ID": 22,
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "101 Fifth Ave, Los Angeles, CA 90018",
                                  "LIB_FEAT_ID": 22
                              }
                          ]
                      },
                      {
                          "FEAT_DESC": "400 River Street, Pasadena, CA 90034",
                          "LIB_FEAT_ID": 65,
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "400 River Street, Pasadena, CA 90034",
                                  "LIB_FEAT_ID": 65
                              }
                          ]
                      }
                  ],
                  "DOB": [
                      {
                          "FEAT_DESC": "15-MAR-1982",
                          "LIB_FEAT_ID": 21,
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "15-MAR-1982",
                                  "LIB_FEAT_ID": 21
                              }
                          ]
                      },
                      {
                          "FEAT_DESC": "17-DEC-1977",
                          "LIB_FEAT_ID": 48,
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "17-DEC-1977",
                                  "LIB_FEAT_ID": 48
                              }
                          ]
                      },
                      {
                          "FEAT_DESC": "23-MAY-1973",
                          "LIB_FEAT_ID": 64,
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "23-MAY-1973",
                                  "LIB_FEAT_ID": 64
                              }
                          ]
                      }
                  ],
                  "NAME": [
                      {
                          "FEAT_DESC": "Jane Donaldson",
                          "LIB_FEAT_ID": 63,
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "Jane Donaldson",
                                  "LIB_FEAT_ID": 63
                              }
                          ]
                      },
                      {
                          "FEAT_DESC": "Joann Smith",
                          "LIB_FEAT_ID": 20,
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "Joann Smith",
                                  "LIB_FEAT_ID": 20
                              }
                          ]
                      },
                      {
                          "FEAT_DESC": "John Parker",
                          "LIB_FEAT_ID": 47,
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "John Parker",
                                  "LIB_FEAT_ID": 47
                              }
                          ]
                      }
                  ],
                  "PHONE": [
                      {
                          "FEAT_DESC": "818-222-3131",
                          "LIB_FEAT_ID": 66,
                          "USAGE_TYPE": "HOME",
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "818-222-3131",
                                  "LIB_FEAT_ID": 66
                              }
                          ]
                      },
                      {
                          "FEAT_DESC": "818-888-3939",
                          "LIB_FEAT_ID": 23,
                          "USAGE_TYPE": "HOME",
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "818-888-3939",
                                  "LIB_FEAT_ID": 23
                              }
                          ]
                      },
                      {
                          "FEAT_DESC": "818-999-2121",
                          "LIB_FEAT_ID": 49,
                          "USAGE_TYPE": "HOME",
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "818-999-2121",
                                  "LIB_FEAT_ID": 49
                              }
                          ]
                      },
                      {
                          "FEAT_DESC": "213-555-1212",
                          "LIB_FEAT_ID": 5,
                          "USAGE_TYPE": "MOBILE",
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "213-555-1212",
                                  "LIB_FEAT_ID": 5
                              }
                          ]
                      },
                      {
                          "FEAT_DESC": "818-555-1313",
                          "LIB_FEAT_ID": 50,
                          "USAGE_TYPE": "MOBILE",
                          "FEAT_DESC_VALUES": [
                              {
                                  "FEAT_DESC": "818-555-1313",
                                  "LIB_FEAT_ID": 50
                              }
                          ]
                      }
                  ]
              },
              "RECORD_SUMMARY": [
                  {
                      "DATA_SOURCE": "PASSENGERS",
                      "RECORD_COUNT": 3
                  }
              ],
              "RECORDS": [
                  {
                      "DATA_SOURCE": "PASSENGERS",
                      "RECORD_ID": "DEF456",
                      "INTERNAL_ID": 2
                  },
                  {
                      "DATA_SOURCE": "PASSENGERS",
                      "RECORD_ID": "GHI789",
                      "INTERNAL_ID": 3
                  },
                  {
                      "DATA_SOURCE": "PASSENGERS",
                      "RECORD_ID": "JKL012",
                      "INTERNAL_ID": 4
                  }
              ]
          }
      }

      Parameters:
      recordKeys - The non-null non-empty Set of non-null SzRecordKey instances that identify the records to use to build the virtual entity.
      Returns:
      The JSON String describing the virtual entity having the specified constituent records.
      Throws:
      SzUnknownDataSourceException - If an unrecognized data source code is specified.
      SzNotFoundException - If any of the records for the specified data source code and record ID pairs cannot be found.
      SzException - If a failure occurs.
      See Also:
    • getRecord

      Retrieves information about a record.

      The information contains the original record data that was loaded and may contain other information depending on the flags parameter.

      The optionally specified Set of SzFlag instances that not only control how the operation is performed but also the level of detail provided for the entity and record being analyzed. The Set may contain any SzFlag value, but only flags belonging to the SzFlagUsageGroup.SZ_RECORD_FLAGS group are guaranteed to be recognized (other SzFlag instances will be ignored unless they have equivalent bit flags).

      NOTE: EnumSet offers an efficient means of constructing a Set of SzFlag.

      Usage:

      // How to retrieve a record via its record key
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // retrieve the entity by record key
          String result = engine.getRecord(
              SzRecordKey.of("TEST", "ABC123"),
              SZ_RECORD_DEFAULT_FLAGS);
      
          // do something with the response JSON (varies by application)
          JsonObject  jsonObject  = Json.createReader(new StringReader(result)).readObject();
          String      dataSource  = jsonObject.getString("DATA_SOURCE");
          String      recordId    = jsonObject.getString("RECORD_ID");
      
          ...
      
      } catch (SzUnknownDataSourceException e) {
          // handle the unknown data source exception
          logError("Expected data source is not configured.", e);
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Record not found for record key.", e);
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to retrieve record by record key.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "DATA_SOURCE": "TEST",
          "RECORD_ID": "ABC123",
          "JSON_DATA": {
              "DATA_SOURCE": "TEST",
              "RECORD_ID": "ABC123",
              "NAME_FULL": "Joe Schmoe",
              "PHONE_NUMBER": "702-555-1212",
              "EMAIL_ADDRESS": "joeschmoe@nowhere.com"
          }
      }

      Parameters:
      recordKey - The non-null SzRecordKey providing the data source code and record ID that identify the record to retrieve.
      flags - The optional Set of SzFlag instances belonging to the SzFlagUsageGroup.SZ_RECORD_FLAGS group to control how the operation is performed and the content of the response, or null to default to SzFlag.SZ_NO_FLAGS or SzFlag.SZ_RECORD_DEFAULT_FLAGS for the default recommended flags.
      Returns:
      The JSON String describing the record.
      Throws:
      SzUnknownDataSourceException - If an unrecognized data source code is specified.
      SzNotFoundException - If the record for the specified data source code and record ID pairs cannot be found.
      SzException - If a failure occurs.
      See Also:
    • getRecord

      Convenience method for calling getRecord(SzRecordKey, Set) using SzFlag.SZ_RECORD_DEFAULT_FLAGS as the value for the flags parameter.

      Usage:

      // How to retrieve a record via its record key
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // retrieve the entity by record key
          String result = engine.getRecord(
              SzRecordKey.of("TEST", "ABC123"));
      
          // do something with the response JSON (varies by application)
          JsonObject  jsonObject  = Json.createReader(new StringReader(result)).readObject();
          String      dataSource  = jsonObject.getString("DATA_SOURCE");
          String      recordId    = jsonObject.getString("RECORD_ID");
      
          ...
      
      } catch (SzUnknownDataSourceException e) {
          // handle the unknown data source exception
          logError("Expected data source is not configured.", e);
      
      } catch (SzNotFoundException e) {
          // handle the not-found exception
          logError("Record not found for record key.", e);
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to retrieve record by record key.", e);
      }
      

      Example Result: (formatted for readability)

      {
          "DATA_SOURCE": "TEST",
          "RECORD_ID": "ABC123",
          "JSON_DATA": {
              "DATA_SOURCE": "TEST",
              "RECORD_ID": "ABC123",
              "NAME_FULL": "Joe Schmoe",
              "PHONE_NUMBER": "702-555-1212",
              "EMAIL_ADDRESS": "joeschmoe@nowhere.com"
          }
      }

      Parameters:
      recordKey - The non-null SzRecordKey providing the data source code and record ID that identify the record to retrieve.
      Returns:
      The JSON String describing the record.
      Throws:
      SzUnknownDataSourceException - If an unrecognized data source code is specified.
      SzNotFoundException - If the record for the specified data source code and record ID pairs cannot be found.
      SzException - If a failure occurs.
      See Also:
    • exportJsonEntityReport

      long exportJsonEntityReport(Set<SzFlag> flags) throws SzException
      Initiates an export report of entity data in JSON Lines format.

      This is used in conjunction with fetchNext(long) and closeExportReport(long). Each fetchNext(long) call returns exported entity data as a JSON object.

      WARNING: Use with large repositories is not advised.

      The optionally specified Set of SzFlag instances that not only control how the operation is performed but also the level of detail provided for the entity and record being analyzed. The Set may contain any SzFlag value, but only flags belonging to the SzFlagUsageGroup.SZ_EXPORT_FLAGS group are guaranteed to be recognized (other SzFlag instances will be ignored unless they have equivalent bit flags).

      NOTE: EnumSet offers an efficient means of constructing a Set of SzFlag.

      Usage:

      // How to export entity data in JSON format
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // export the JSON data
          long exportHandle = engine.exportJsonEntityReport(SZ_EXPORT_DEFAULT_FLAGS);
      
          // read the data
          try {
              // fetch the first JSON record
              String jsonData = engine.fetchNext(exportHandle);
              while (jsonData != null) {
                  // parse the JSON data
                  JsonObject jsonObject = Json.createReader(new StringReader(jsonData)).readObject();
      
                  // do something with the parsed data (varies by application)
                  processJsonRecord(jsonObject);
      
                  // fetch the next JSON record
                  jsonData = engine.fetchNext(exportHandle);
              }
      
          } finally {
              // close the export report handle
              engine.closeExportReport(exportHandle);
          }
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to perform JSON export.", e);
      }
      

      Example Complete Export Report:

      {"RESOLVED_ENTITY":{"ENTITY_ID":1,"ENTITY_NAME":"Joseph Schmidt","FEATURES":{"ADDRESS":[{"FEAT_DESC":"101 Main Street, Los Angeles, CA 90011","LIB_FEAT_ID":3,"FEAT_DESC_VALUES":[{"FEAT_DESC":"101 Main Street, Los Angeles, CA 90011","LIB_FEAT_ID":3}]}],"DOB":[{"FEAT_DESC":"12-JAN-1981","LIB_FEAT_ID":2,"FEAT_DESC_VALUES":[{"FEAT_DESC":"12-JAN-1981","LIB_FEAT_ID":2}]}],"NAME":[{"FEAT_DESC":"Joseph Schmidt","LIB_FEAT_ID":1,"FEAT_DESC_VALUES":[{"FEAT_DESC":"Joseph Schmidt","LIB_FEAT_ID":1}]}],"PHONE":[{"FEAT_DESC":"818-777-2424","LIB_FEAT_ID":4,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-777-2424","LIB_FEAT_ID":4}]},{"FEAT_DESC":"213-555-1212","LIB_FEAT_ID":5,"USAGE_TYPE":"MOBILE","FEAT_DESC_VALUES":[{"FEAT_DESC":"213-555-1212","LIB_FEAT_ID":5}]}]},"RECORD_SUMMARY":[{"DATA_SOURCE":"PASSENGERS","RECORD_COUNT":1}],"RECORDS":[{"DATA_SOURCE":"PASSENGERS","RECORD_ID":"ABC123","INTERNAL_ID":1,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":""}]},"RELATED_ENTITIES":[{"ENTITY_ID":2,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+PHONE-DOB","ERRULE_CODE":"SF1","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Joann Smith","RECORD_SUMMARY":[{"DATA_SOURCE":"PASSENGERS","RECORD_COUNT":1}]},{"ENTITY_ID":5,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+ADDRESS-DOB","ERRULE_CODE":"SFF","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Bill Bandley","RECORD_SUMMARY":[{"DATA_SOURCE":"EMPLOYEES","RECORD_COUNT":1}]}]}
      {"RESOLVED_ENTITY":{"ENTITY_ID":2,"ENTITY_NAME":"Joann Smith","FEATURES":{"ADDRESS":[{"FEAT_DESC":"101 Fifth Ave, Los Angeles, CA 90018","LIB_FEAT_ID":22,"FEAT_DESC_VALUES":[{"FEAT_DESC":"101 Fifth Ave, Los Angeles, CA 90018","LIB_FEAT_ID":22}]}],"DOB":[{"FEAT_DESC":"15-MAR-1982","LIB_FEAT_ID":21,"FEAT_DESC_VALUES":[{"FEAT_DESC":"15-MAR-1982","LIB_FEAT_ID":21}]}],"NAME":[{"FEAT_DESC":"Joann Smith","LIB_FEAT_ID":20,"FEAT_DESC_VALUES":[{"FEAT_DESC":"Joann Smith","LIB_FEAT_ID":20}]}],"PHONE":[{"FEAT_DESC":"818-888-3939","LIB_FEAT_ID":23,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-888-3939","LIB_FEAT_ID":23}]},{"FEAT_DESC":"213-555-1212","LIB_FEAT_ID":5,"USAGE_TYPE":"MOBILE","FEAT_DESC_VALUES":[{"FEAT_DESC":"213-555-1212","LIB_FEAT_ID":5}]}]},"RECORD_SUMMARY":[{"DATA_SOURCE":"PASSENGERS","RECORD_COUNT":1}],"RECORDS":[{"DATA_SOURCE":"PASSENGERS","RECORD_ID":"DEF456","INTERNAL_ID":2,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":""}]},"RELATED_ENTITIES":[{"ENTITY_ID":1,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+PHONE-DOB","ERRULE_CODE":"SF1","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Joseph Schmidt","RECORD_SUMMARY":[{"DATA_SOURCE":"PASSENGERS","RECORD_COUNT":1}]},{"ENTITY_ID":3,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+ADDRESS-DOB","ERRULE_CODE":"SFF","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"John Parker","RECORD_SUMMARY":[{"DATA_SOURCE":"PASSENGERS","RECORD_COUNT":1}]},{"ENTITY_ID":6,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+SURNAME+PHONE-DOB","ERRULE_CODE":"CFF_SURNAME","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Craig Smith","RECORD_SUMMARY":[{"DATA_SOURCE":"EMPLOYEES","RECORD_COUNT":1}]}]}
      {"RESOLVED_ENTITY":{"ENTITY_ID":3,"ENTITY_NAME":"John Parker","FEATURES":{"ADDRESS":[{"FEAT_DESC":"101 Fifth Ave, Los Angeles, CA 90018","LIB_FEAT_ID":22,"FEAT_DESC_VALUES":[{"FEAT_DESC":"101 Fifth Ave, Los Angeles, CA 90018","LIB_FEAT_ID":22}]}],"DOB":[{"FEAT_DESC":"17-DEC-1977","LIB_FEAT_ID":48,"FEAT_DESC_VALUES":[{"FEAT_DESC":"17-DEC-1977","LIB_FEAT_ID":48}]}],"NAME":[{"FEAT_DESC":"John Parker","LIB_FEAT_ID":47,"FEAT_DESC_VALUES":[{"FEAT_DESC":"John Parker","LIB_FEAT_ID":47}]}],"PHONE":[{"FEAT_DESC":"818-999-2121","LIB_FEAT_ID":49,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-999-2121","LIB_FEAT_ID":49}]},{"FEAT_DESC":"818-555-1313","LIB_FEAT_ID":50,"USAGE_TYPE":"MOBILE","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-555-1313","LIB_FEAT_ID":50}]}]},"RECORD_SUMMARY":[{"DATA_SOURCE":"PASSENGERS","RECORD_COUNT":1}],"RECORDS":[{"DATA_SOURCE":"PASSENGERS","RECORD_ID":"GHI789","INTERNAL_ID":3,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":""}]},"RELATED_ENTITIES":[{"ENTITY_ID":2,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+ADDRESS-DOB","ERRULE_CODE":"SFF","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Joann Smith","RECORD_SUMMARY":[{"DATA_SOURCE":"PASSENGERS","RECORD_COUNT":1}]},{"ENTITY_ID":4,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+PHONE-DOB","ERRULE_CODE":"SF1","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Jane Donaldson","RECORD_SUMMARY":[{"DATA_SOURCE":"PASSENGERS","RECORD_COUNT":1}]}]}
      {"RESOLVED_ENTITY":{"ENTITY_ID":4,"ENTITY_NAME":"Jane Donaldson","FEATURES":{"ADDRESS":[{"FEAT_DESC":"400 River Street, Pasadena, CA 90034","LIB_FEAT_ID":65,"FEAT_DESC_VALUES":[{"FEAT_DESC":"400 River Street, Pasadena, CA 90034","LIB_FEAT_ID":65}]}],"DOB":[{"FEAT_DESC":"23-MAY-1973","LIB_FEAT_ID":64,"FEAT_DESC_VALUES":[{"FEAT_DESC":"23-MAY-1973","LIB_FEAT_ID":64}]}],"NAME":[{"FEAT_DESC":"Jane Donaldson","LIB_FEAT_ID":63,"FEAT_DESC_VALUES":[{"FEAT_DESC":"Jane Donaldson","LIB_FEAT_ID":63}]}],"PHONE":[{"FEAT_DESC":"818-222-3131","LIB_FEAT_ID":66,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-222-3131","LIB_FEAT_ID":66}]},{"FEAT_DESC":"818-555-1313","LIB_FEAT_ID":50,"USAGE_TYPE":"MOBILE","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-555-1313","LIB_FEAT_ID":50}]}]},"RECORD_SUMMARY":[{"DATA_SOURCE":"PASSENGERS","RECORD_COUNT":1}],"RECORDS":[{"DATA_SOURCE":"PASSENGERS","RECORD_ID":"JKL012","INTERNAL_ID":4,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":""}]},"RELATED_ENTITIES":[{"ENTITY_ID":3,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+PHONE-DOB","ERRULE_CODE":"SF1","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"John Parker","RECORD_SUMMARY":[{"DATA_SOURCE":"PASSENGERS","RECORD_COUNT":1}]},{"ENTITY_ID":10,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+PNAME+ADDRESS-DOB","ERRULE_CODE":"SFF","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Jane Johnson","RECORD_SUMMARY":[{"DATA_SOURCE":"VIPS","RECORD_COUNT":1}]}]}
      {"RESOLVED_ENTITY":{"ENTITY_ID":5,"ENTITY_NAME":"Bill Bandley","FEATURES":{"ADDRESS":[{"FEAT_DESC":"101 Main Street, Los Angeles, CA 90011","LIB_FEAT_ID":3,"FEAT_DESC_VALUES":[{"FEAT_DESC":"101 Main Street, Los Angeles, CA 90011","LIB_FEAT_ID":3}]}],"DOB":[{"FEAT_DESC":"22-AUG-1981","LIB_FEAT_ID":81,"FEAT_DESC_VALUES":[{"FEAT_DESC":"22-AUG-1981","LIB_FEAT_ID":81}]}],"NAME":[{"FEAT_DESC":"Bill Bandley","LIB_FEAT_ID":80,"FEAT_DESC_VALUES":[{"FEAT_DESC":"Bill Bandley","LIB_FEAT_ID":80}]}],"PHONE":[{"FEAT_DESC":"818-123-4567","LIB_FEAT_ID":82,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-123-4567","LIB_FEAT_ID":82}]},{"FEAT_DESC":"818-444-2121","LIB_FEAT_ID":83,"USAGE_TYPE":"MOBILE","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-444-2121","LIB_FEAT_ID":83}]}]},"RECORD_SUMMARY":[{"DATA_SOURCE":"EMPLOYEES","RECORD_COUNT":1}],"RECORDS":[{"DATA_SOURCE":"EMPLOYEES","RECORD_ID":"MNO345","INTERNAL_ID":5,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":""}]},"RELATED_ENTITIES":[{"ENTITY_ID":1,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+ADDRESS-DOB","ERRULE_CODE":"SFF","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Joseph Schmidt","RECORD_SUMMARY":[{"DATA_SOURCE":"PASSENGERS","RECORD_COUNT":1}]},{"ENTITY_ID":8,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+PHONE-DOB","ERRULE_CODE":"SF1","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Katrina Osmond","RECORD_SUMMARY":[{"DATA_SOURCE":"EMPLOYEES","RECORD_COUNT":1}]}]}
      {"RESOLVED_ENTITY":{"ENTITY_ID":6,"ENTITY_NAME":"Craig Smith","FEATURES":{"ADDRESS":[{"FEAT_DESC":"451 Dover Street, Los Angeles, CA 90018","LIB_FEAT_ID":108,"FEAT_DESC_VALUES":[{"FEAT_DESC":"451 Dover Street, Los Angeles, CA 90018","LIB_FEAT_ID":108}]}],"DOB":[{"FEAT_DESC":"17-OCT-1983","LIB_FEAT_ID":107,"FEAT_DESC_VALUES":[{"FEAT_DESC":"17-OCT-1983","LIB_FEAT_ID":107}]}],"NAME":[{"FEAT_DESC":"Craig Smith","LIB_FEAT_ID":106,"FEAT_DESC_VALUES":[{"FEAT_DESC":"Craig Smith","LIB_FEAT_ID":106}]}],"PHONE":[{"FEAT_DESC":"818-888-3939","LIB_FEAT_ID":23,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-888-3939","LIB_FEAT_ID":23}]},{"FEAT_DESC":"818-555-1212","LIB_FEAT_ID":109,"USAGE_TYPE":"MOBILE","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-555-1212","LIB_FEAT_ID":109}]}]},"RECORD_SUMMARY":[{"DATA_SOURCE":"EMPLOYEES","RECORD_COUNT":1}],"RECORDS":[{"DATA_SOURCE":"EMPLOYEES","RECORD_ID":"PQR678","INTERNAL_ID":6,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":""}]},"RELATED_ENTITIES":[{"ENTITY_ID":2,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+SURNAME+PHONE-DOB","ERRULE_CODE":"CFF_SURNAME","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Joann Smith","RECORD_SUMMARY":[{"DATA_SOURCE":"PASSENGERS","RECORD_COUNT":1}]},{"ENTITY_ID":7,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+ADDRESS-DOB","ERRULE_CODE":"SFF","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Kim Long","RECORD_SUMMARY":[{"DATA_SOURCE":"EMPLOYEES","RECORD_COUNT":1}]}]}
      {"RESOLVED_ENTITY":{"ENTITY_ID":7,"ENTITY_NAME":"Kim Long","FEATURES":{"ADDRESS":[{"FEAT_DESC":"451 Dover Street, Los Angeles, CA 90018","LIB_FEAT_ID":108,"FEAT_DESC_VALUES":[{"FEAT_DESC":"451 Dover Street, Los Angeles, CA 90018","LIB_FEAT_ID":108}]}],"DOB":[{"FEAT_DESC":"24-NOV-1975","LIB_FEAT_ID":134,"FEAT_DESC_VALUES":[{"FEAT_DESC":"24-NOV-1975","LIB_FEAT_ID":134}]}],"NAME":[{"FEAT_DESC":"Kim Long","LIB_FEAT_ID":133,"FEAT_DESC_VALUES":[{"FEAT_DESC":"Kim Long","LIB_FEAT_ID":133}]}],"PHONE":[{"FEAT_DESC":"818-135-7913","LIB_FEAT_ID":135,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-135-7913","LIB_FEAT_ID":135}]},{"FEAT_DESC":"818-246-8024","LIB_FEAT_ID":136,"USAGE_TYPE":"MOBILE","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-246-8024","LIB_FEAT_ID":136}]}]},"RECORD_SUMMARY":[{"DATA_SOURCE":"EMPLOYEES","RECORD_COUNT":1}],"RECORDS":[{"DATA_SOURCE":"EMPLOYEES","RECORD_ID":"ABC567","INTERNAL_ID":7,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":""}]},"RELATED_ENTITIES":[{"ENTITY_ID":6,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+ADDRESS-DOB","ERRULE_CODE":"SFF","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Craig Smith","RECORD_SUMMARY":[{"DATA_SOURCE":"EMPLOYEES","RECORD_COUNT":1}]}]}
      {"RESOLVED_ENTITY":{"ENTITY_ID":8,"ENTITY_NAME":"Katrina Osmond","FEATURES":{"ADDRESS":[{"FEAT_DESC":"707 Seventh Ave, Los Angeles, CA 90043","LIB_FEAT_ID":161,"FEAT_DESC_VALUES":[{"FEAT_DESC":"707 Seventh Ave, Los Angeles, CA 90043","LIB_FEAT_ID":161}]}],"DOB":[{"FEAT_DESC":"27-JUN-1980","LIB_FEAT_ID":160,"FEAT_DESC_VALUES":[{"FEAT_DESC":"27-JUN-1980","LIB_FEAT_ID":160}]}],"NAME":[{"FEAT_DESC":"Katrina Osmond","LIB_FEAT_ID":159,"FEAT_DESC_VALUES":[{"FEAT_DESC":"Katrina Osmond","LIB_FEAT_ID":159}]}],"PHONE":[{"FEAT_DESC":"818-111-2222","LIB_FEAT_ID":162,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-111-2222","LIB_FEAT_ID":162}]},{"FEAT_DESC":"818-444-2121","LIB_FEAT_ID":83,"USAGE_TYPE":"MOBILE","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-444-2121","LIB_FEAT_ID":83}]}]},"RECORD_SUMMARY":[{"DATA_SOURCE":"EMPLOYEES","RECORD_COUNT":1}],"RECORDS":[{"DATA_SOURCE":"EMPLOYEES","RECORD_ID":"DEF890","INTERNAL_ID":8,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":""}]},"RELATED_ENTITIES":[{"ENTITY_ID":5,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+PHONE-DOB","ERRULE_CODE":"SF1","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Bill Bandley","RECORD_SUMMARY":[{"DATA_SOURCE":"EMPLOYEES","RECORD_COUNT":1}]},{"ENTITY_ID":12,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+ADDRESS-DOB","ERRULE_CODE":"SFF","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Kelly Rogers","RECORD_SUMMARY":[{"DATA_SOURCE":"VIPS","RECORD_COUNT":1}]}]}
      {"RESOLVED_ENTITY":{"ENTITY_ID":9,"ENTITY_NAME":"Martha Wayne","FEATURES":{"ADDRESS":[{"FEAT_DESC":"888 Sepulveda Blvd, Los Angeles, CA 90034","LIB_FEAT_ID":178,"FEAT_DESC_VALUES":[{"FEAT_DESC":"888 Sepulveda Blvd, Los Angeles, CA 90034","LIB_FEAT_ID":178}]}],"DOB":[{"FEAT_DESC":"27-NOV-1973","LIB_FEAT_ID":177,"FEAT_DESC_VALUES":[{"FEAT_DESC":"27-NOV-1973","LIB_FEAT_ID":177}]}],"NAME":[{"FEAT_DESC":"Martha Wayne","LIB_FEAT_ID":176,"FEAT_DESC_VALUES":[{"FEAT_DESC":"Martha Wayne","LIB_FEAT_ID":176}]}],"PHONE":[{"FEAT_DESC":"818-987-1234","LIB_FEAT_ID":179,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-987-1234","LIB_FEAT_ID":179}]},{"FEAT_DESC":"818-891-9292","LIB_FEAT_ID":180,"USAGE_TYPE":"MOBILE","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-891-9292","LIB_FEAT_ID":180}]}]},"RECORD_SUMMARY":[{"DATA_SOURCE":"VIPS","RECORD_COUNT":1}],"RECORDS":[{"DATA_SOURCE":"VIPS","RECORD_ID":"STU901","INTERNAL_ID":9,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":""}]},"RELATED_ENTITIES":[{"ENTITY_ID":11,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+PNAME+ADDRESS-DOB","ERRULE_CODE":"SFF","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Martha Kent","RECORD_SUMMARY":[{"DATA_SOURCE":"VIPS","RECORD_COUNT":1}]}]}
      {"RESOLVED_ENTITY":{"ENTITY_ID":10,"ENTITY_NAME":"Jane Johnson","FEATURES":{"ADDRESS":[{"FEAT_DESC":"400 River Street, Pasadena, CA 90034","LIB_FEAT_ID":65,"FEAT_DESC_VALUES":[{"FEAT_DESC":"400 River Street, Pasadena, CA 90034","LIB_FEAT_ID":65}]}],"DOB":[{"FEAT_DESC":"6-SEP-1975","LIB_FEAT_ID":196,"FEAT_DESC_VALUES":[{"FEAT_DESC":"6-SEP-1975","LIB_FEAT_ID":196}]}],"NAME":[{"FEAT_DESC":"Jane Johnson","LIB_FEAT_ID":195,"FEAT_DESC_VALUES":[{"FEAT_DESC":"Jane Johnson","LIB_FEAT_ID":195}]}],"PHONE":[{"FEAT_DESC":"818-123-9876","LIB_FEAT_ID":197,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-123-9876","LIB_FEAT_ID":197}]},{"FEAT_DESC":"818-333-7171","LIB_FEAT_ID":198,"USAGE_TYPE":"MOBILE","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-333-7171","LIB_FEAT_ID":198}]}]},"RECORD_SUMMARY":[{"DATA_SOURCE":"VIPS","RECORD_COUNT":1}],"RECORDS":[{"DATA_SOURCE":"VIPS","RECORD_ID":"XYZ234","INTERNAL_ID":10,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":""}]},"RELATED_ENTITIES":[{"ENTITY_ID":4,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+PNAME+ADDRESS-DOB","ERRULE_CODE":"SFF","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Jane Donaldson","RECORD_SUMMARY":[{"DATA_SOURCE":"PASSENGERS","RECORD_COUNT":1}]},{"ENTITY_ID":11,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+PHONE-DOB","ERRULE_CODE":"SFF","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Martha Kent","RECORD_SUMMARY":[{"DATA_SOURCE":"VIPS","RECORD_COUNT":1}]},{"ENTITY_ID":12,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+PHONE-DOB","ERRULE_CODE":"SF1","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Kelly Rogers","RECORD_SUMMARY":[{"DATA_SOURCE":"VIPS","RECORD_COUNT":1}]}]}
      {"RESOLVED_ENTITY":{"ENTITY_ID":11,"ENTITY_NAME":"Martha Kent","FEATURES":{"ADDRESS":[{"FEAT_DESC":"888 Sepulveda Blvd, Los Angeles, CA 90034","LIB_FEAT_ID":178,"FEAT_DESC_VALUES":[{"FEAT_DESC":"888 Sepulveda Blvd, Los Angeles, CA 90034","LIB_FEAT_ID":178}]}],"DOB":[{"FEAT_DESC":"17-AUG-1978","LIB_FEAT_ID":222,"FEAT_DESC_VALUES":[{"FEAT_DESC":"17-AUG-1978","LIB_FEAT_ID":222}]}],"NAME":[{"FEAT_DESC":"Martha Kent","LIB_FEAT_ID":221,"FEAT_DESC_VALUES":[{"FEAT_DESC":"Martha Kent","LIB_FEAT_ID":221}]}],"PHONE":[{"FEAT_DESC":"818-123-9876","LIB_FEAT_ID":197,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-123-9876","LIB_FEAT_ID":197}]},{"FEAT_DESC":"818-333-5757","LIB_FEAT_ID":223,"USAGE_TYPE":"MOBILE","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-333-5757","LIB_FEAT_ID":223}]}]},"RECORD_SUMMARY":[{"DATA_SOURCE":"VIPS","RECORD_COUNT":1}],"RECORDS":[{"DATA_SOURCE":"VIPS","RECORD_ID":"GHI123","INTERNAL_ID":11,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":""}]},"RELATED_ENTITIES":[{"ENTITY_ID":9,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+PNAME+ADDRESS-DOB","ERRULE_CODE":"SFF","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Martha Wayne","RECORD_SUMMARY":[{"DATA_SOURCE":"VIPS","RECORD_COUNT":1}]},{"ENTITY_ID":10,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+PHONE-DOB","ERRULE_CODE":"SFF","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Jane Johnson","RECORD_SUMMARY":[{"DATA_SOURCE":"VIPS","RECORD_COUNT":1}]}]}
      {"RESOLVED_ENTITY":{"ENTITY_ID":12,"ENTITY_NAME":"Kelly Rogers","FEATURES":{"ADDRESS":[{"FEAT_DESC":"707 Seventh Ave, Los Angeles, CA 90043","LIB_FEAT_ID":161,"FEAT_DESC_VALUES":[{"FEAT_DESC":"707 Seventh Ave, Los Angeles, CA 90043","LIB_FEAT_ID":161}]}],"DOB":[{"FEAT_DESC":"15-JAN-1979","LIB_FEAT_ID":236,"FEAT_DESC_VALUES":[{"FEAT_DESC":"15-JAN-1979","LIB_FEAT_ID":236}]}],"NAME":[{"FEAT_DESC":"Kelly Rogers","LIB_FEAT_ID":235,"FEAT_DESC_VALUES":[{"FEAT_DESC":"Kelly Rogers","LIB_FEAT_ID":235}]}],"PHONE":[{"FEAT_DESC":"818-789-6543","LIB_FEAT_ID":237,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-789-6543","LIB_FEAT_ID":237}]},{"FEAT_DESC":"818-333-7171","LIB_FEAT_ID":198,"USAGE_TYPE":"MOBILE","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-333-7171","LIB_FEAT_ID":198}]}]},"RECORD_SUMMARY":[{"DATA_SOURCE":"VIPS","RECORD_COUNT":1}],"RECORDS":[{"DATA_SOURCE":"VIPS","RECORD_ID":"JKL456","INTERNAL_ID":12,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":""}]},"RELATED_ENTITIES":[{"ENTITY_ID":8,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+ADDRESS-DOB","ERRULE_CODE":"SFF","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Katrina Osmond","RECORD_SUMMARY":[{"DATA_SOURCE":"EMPLOYEES","RECORD_COUNT":1}]},{"ENTITY_ID":10,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+PHONE-DOB","ERRULE_CODE":"SF1","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Jane Johnson","RECORD_SUMMARY":[{"DATA_SOURCE":"VIPS","RECORD_COUNT":1}]}]}
      {"RESOLVED_ENTITY":{"ENTITY_ID":100002,"ENTITY_NAME":"Joseph W Schmoe","FEATURES":{"ADDRESS":[{"FEAT_DESC":"101 Main St.; Las Vegas, NV 89101","LIB_FEAT_ID":100011,"FEAT_DESC_VALUES":[{"FEAT_DESC":"101 Main St.; Las Vegas, NV 89101","LIB_FEAT_ID":100011}]}],"EMAIL":[{"FEAT_DESC":"joeschmoe@nowhere.com","LIB_FEAT_ID":100003,"FEAT_DESC_VALUES":[{"FEAT_DESC":"joeschmoe@nowhere.com","LIB_FEAT_ID":100003}]}],"NAME":[{"FEAT_DESC":"Joseph W Schmoe","LIB_FEAT_ID":100021,"FEAT_DESC_VALUES":[{"FEAT_DESC":"Joseph W Schmoe","LIB_FEAT_ID":100021},{"FEAT_DESC":"Joseph Schmoe","LIB_FEAT_ID":100010},{"FEAT_DESC":"Joe Schmoe","LIB_FEAT_ID":100001}]}],"PHONE":[{"FEAT_DESC":"702-555-1212","LIB_FEAT_ID":100002,"FEAT_DESC_VALUES":[{"FEAT_DESC":"702-555-1212","LIB_FEAT_ID":100002}]},{"FEAT_DESC":"702-555-1212","LIB_FEAT_ID":100002,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"702-555-1212","LIB_FEAT_ID":100002}]},{"FEAT_DESC":"702-555-1313","LIB_FEAT_ID":100012,"USAGE_TYPE":"WORK","FEAT_DESC_VALUES":[{"FEAT_DESC":"702-555-1313","LIB_FEAT_ID":100012}]}]},"RECORD_SUMMARY":[{"DATA_SOURCE":"TEST","RECORD_COUNT":3}],"RECORDS":[{"DATA_SOURCE":"TEST","RECORD_ID":"ABC123","INTERNAL_ID":100002,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":""},{"DATA_SOURCE":"TEST","RECORD_ID":"XYZ987","INTERNAL_ID":100003,"MATCH_KEY":"+NAME+EMAIL","MATCH_LEVEL_CODE":"RESOLVED","ERRULE_CODE":"SF1_CNAME"},{"DATA_SOURCE":"TEST","RECORD_ID":"ZYX789","INTERNAL_ID":100004,"MATCH_KEY":"+NAME+ADDRESS+PHONE","MATCH_LEVEL_CODE":"RESOLVED","ERRULE_CODE":"MFF_CNAME"}]},"RELATED_ENTITIES":[]}
      

      Parameters:
      flags - The optional Set of SzFlag instances belonging to the SzFlagUsageGroup.SZ_EXPORT_FLAGS group to control how the operation is performed and the content of the export, or null to default to SzFlag.SZ_NO_FLAGS or SzFlag.SZ_EXPORT_DEFAULT_FLAGS for the default recommended flags.
      Returns:
      The export handle to use for retrieving the export data.
      Throws:
      SzException - If a failure occurs.
      See Also:
    • exportJsonEntityReport

      default long exportJsonEntityReport() throws SzException
      Convenience method for calling exportJsonEntityReport(Set) using SzFlag.SZ_EXPORT_DEFAULT_FLAGS as the value for the flags parameter. See the exportJsonEntityReport(Set) documentation for details.

      Usage:

      // How to export entity data in JSON format
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // export the JSON data
          long exportHandle = engine.exportJsonEntityReport();
      
          // read the data
          try {
              // fetch the first JSON record
              String jsonData = engine.fetchNext(exportHandle);
              while (jsonData != null) {
                  // parse the JSON data
                  JsonObject jsonObject = Json.createReader(new StringReader(jsonData)).readObject();
      
                  // do something with the parsed data (varies by application)
                  processJsonRecord(jsonObject);
      
                  // fetch the next JSON record
                  jsonData = engine.fetchNext(exportHandle);
              }
      
          } finally {
              // close the export report handle
              engine.closeExportReport(exportHandle);
          }
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to perform JSON export.", e);
      }
      

      Example Complete Export Report:

      {"RESOLVED_ENTITY":{"ENTITY_ID":1,"ENTITY_NAME":"Joseph Schmidt","FEATURES":{"ADDRESS":[{"FEAT_DESC":"101 Main Street, Los Angeles, CA 90011","LIB_FEAT_ID":3,"FEAT_DESC_VALUES":[{"FEAT_DESC":"101 Main Street, Los Angeles, CA 90011","LIB_FEAT_ID":3}]}],"DOB":[{"FEAT_DESC":"12-JAN-1981","LIB_FEAT_ID":2,"FEAT_DESC_VALUES":[{"FEAT_DESC":"12-JAN-1981","LIB_FEAT_ID":2}]}],"NAME":[{"FEAT_DESC":"Joseph Schmidt","LIB_FEAT_ID":1,"FEAT_DESC_VALUES":[{"FEAT_DESC":"Joseph Schmidt","LIB_FEAT_ID":1}]}],"PHONE":[{"FEAT_DESC":"818-777-2424","LIB_FEAT_ID":4,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-777-2424","LIB_FEAT_ID":4}]},{"FEAT_DESC":"213-555-1212","LIB_FEAT_ID":5,"USAGE_TYPE":"MOBILE","FEAT_DESC_VALUES":[{"FEAT_DESC":"213-555-1212","LIB_FEAT_ID":5}]}]},"RECORD_SUMMARY":[{"DATA_SOURCE":"PASSENGERS","RECORD_COUNT":1}],"RECORDS":[{"DATA_SOURCE":"PASSENGERS","RECORD_ID":"ABC123","INTERNAL_ID":1,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":""}]},"RELATED_ENTITIES":[{"ENTITY_ID":2,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+PHONE-DOB","ERRULE_CODE":"SF1","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Joann Smith","RECORD_SUMMARY":[{"DATA_SOURCE":"PASSENGERS","RECORD_COUNT":1}]},{"ENTITY_ID":5,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+ADDRESS-DOB","ERRULE_CODE":"SFF","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Bill Bandley","RECORD_SUMMARY":[{"DATA_SOURCE":"EMPLOYEES","RECORD_COUNT":1}]}]}
      {"RESOLVED_ENTITY":{"ENTITY_ID":2,"ENTITY_NAME":"Joann Smith","FEATURES":{"ADDRESS":[{"FEAT_DESC":"101 Fifth Ave, Los Angeles, CA 90018","LIB_FEAT_ID":22,"FEAT_DESC_VALUES":[{"FEAT_DESC":"101 Fifth Ave, Los Angeles, CA 90018","LIB_FEAT_ID":22}]}],"DOB":[{"FEAT_DESC":"15-MAR-1982","LIB_FEAT_ID":21,"FEAT_DESC_VALUES":[{"FEAT_DESC":"15-MAR-1982","LIB_FEAT_ID":21}]}],"NAME":[{"FEAT_DESC":"Joann Smith","LIB_FEAT_ID":20,"FEAT_DESC_VALUES":[{"FEAT_DESC":"Joann Smith","LIB_FEAT_ID":20}]}],"PHONE":[{"FEAT_DESC":"818-888-3939","LIB_FEAT_ID":23,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-888-3939","LIB_FEAT_ID":23}]},{"FEAT_DESC":"213-555-1212","LIB_FEAT_ID":5,"USAGE_TYPE":"MOBILE","FEAT_DESC_VALUES":[{"FEAT_DESC":"213-555-1212","LIB_FEAT_ID":5}]}]},"RECORD_SUMMARY":[{"DATA_SOURCE":"PASSENGERS","RECORD_COUNT":1}],"RECORDS":[{"DATA_SOURCE":"PASSENGERS","RECORD_ID":"DEF456","INTERNAL_ID":2,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":""}]},"RELATED_ENTITIES":[{"ENTITY_ID":1,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+PHONE-DOB","ERRULE_CODE":"SF1","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Joseph Schmidt","RECORD_SUMMARY":[{"DATA_SOURCE":"PASSENGERS","RECORD_COUNT":1}]},{"ENTITY_ID":3,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+ADDRESS-DOB","ERRULE_CODE":"SFF","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"John Parker","RECORD_SUMMARY":[{"DATA_SOURCE":"PASSENGERS","RECORD_COUNT":1}]},{"ENTITY_ID":6,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+SURNAME+PHONE-DOB","ERRULE_CODE":"CFF_SURNAME","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Craig Smith","RECORD_SUMMARY":[{"DATA_SOURCE":"EMPLOYEES","RECORD_COUNT":1}]}]}
      {"RESOLVED_ENTITY":{"ENTITY_ID":3,"ENTITY_NAME":"John Parker","FEATURES":{"ADDRESS":[{"FEAT_DESC":"101 Fifth Ave, Los Angeles, CA 90018","LIB_FEAT_ID":22,"FEAT_DESC_VALUES":[{"FEAT_DESC":"101 Fifth Ave, Los Angeles, CA 90018","LIB_FEAT_ID":22}]}],"DOB":[{"FEAT_DESC":"17-DEC-1977","LIB_FEAT_ID":48,"FEAT_DESC_VALUES":[{"FEAT_DESC":"17-DEC-1977","LIB_FEAT_ID":48}]}],"NAME":[{"FEAT_DESC":"John Parker","LIB_FEAT_ID":47,"FEAT_DESC_VALUES":[{"FEAT_DESC":"John Parker","LIB_FEAT_ID":47}]}],"PHONE":[{"FEAT_DESC":"818-999-2121","LIB_FEAT_ID":49,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-999-2121","LIB_FEAT_ID":49}]},{"FEAT_DESC":"818-555-1313","LIB_FEAT_ID":50,"USAGE_TYPE":"MOBILE","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-555-1313","LIB_FEAT_ID":50}]}]},"RECORD_SUMMARY":[{"DATA_SOURCE":"PASSENGERS","RECORD_COUNT":1}],"RECORDS":[{"DATA_SOURCE":"PASSENGERS","RECORD_ID":"GHI789","INTERNAL_ID":3,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":""}]},"RELATED_ENTITIES":[{"ENTITY_ID":2,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+ADDRESS-DOB","ERRULE_CODE":"SFF","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Joann Smith","RECORD_SUMMARY":[{"DATA_SOURCE":"PASSENGERS","RECORD_COUNT":1}]},{"ENTITY_ID":4,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+PHONE-DOB","ERRULE_CODE":"SF1","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Jane Donaldson","RECORD_SUMMARY":[{"DATA_SOURCE":"PASSENGERS","RECORD_COUNT":1}]}]}
      {"RESOLVED_ENTITY":{"ENTITY_ID":4,"ENTITY_NAME":"Jane Donaldson","FEATURES":{"ADDRESS":[{"FEAT_DESC":"400 River Street, Pasadena, CA 90034","LIB_FEAT_ID":65,"FEAT_DESC_VALUES":[{"FEAT_DESC":"400 River Street, Pasadena, CA 90034","LIB_FEAT_ID":65}]}],"DOB":[{"FEAT_DESC":"23-MAY-1973","LIB_FEAT_ID":64,"FEAT_DESC_VALUES":[{"FEAT_DESC":"23-MAY-1973","LIB_FEAT_ID":64}]}],"NAME":[{"FEAT_DESC":"Jane Donaldson","LIB_FEAT_ID":63,"FEAT_DESC_VALUES":[{"FEAT_DESC":"Jane Donaldson","LIB_FEAT_ID":63}]}],"PHONE":[{"FEAT_DESC":"818-222-3131","LIB_FEAT_ID":66,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-222-3131","LIB_FEAT_ID":66}]},{"FEAT_DESC":"818-555-1313","LIB_FEAT_ID":50,"USAGE_TYPE":"MOBILE","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-555-1313","LIB_FEAT_ID":50}]}]},"RECORD_SUMMARY":[{"DATA_SOURCE":"PASSENGERS","RECORD_COUNT":1}],"RECORDS":[{"DATA_SOURCE":"PASSENGERS","RECORD_ID":"JKL012","INTERNAL_ID":4,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":""}]},"RELATED_ENTITIES":[{"ENTITY_ID":3,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+PHONE-DOB","ERRULE_CODE":"SF1","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"John Parker","RECORD_SUMMARY":[{"DATA_SOURCE":"PASSENGERS","RECORD_COUNT":1}]},{"ENTITY_ID":10,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+PNAME+ADDRESS-DOB","ERRULE_CODE":"SFF","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Jane Johnson","RECORD_SUMMARY":[{"DATA_SOURCE":"VIPS","RECORD_COUNT":1}]}]}
      {"RESOLVED_ENTITY":{"ENTITY_ID":5,"ENTITY_NAME":"Bill Bandley","FEATURES":{"ADDRESS":[{"FEAT_DESC":"101 Main Street, Los Angeles, CA 90011","LIB_FEAT_ID":3,"FEAT_DESC_VALUES":[{"FEAT_DESC":"101 Main Street, Los Angeles, CA 90011","LIB_FEAT_ID":3}]}],"DOB":[{"FEAT_DESC":"22-AUG-1981","LIB_FEAT_ID":81,"FEAT_DESC_VALUES":[{"FEAT_DESC":"22-AUG-1981","LIB_FEAT_ID":81}]}],"NAME":[{"FEAT_DESC":"Bill Bandley","LIB_FEAT_ID":80,"FEAT_DESC_VALUES":[{"FEAT_DESC":"Bill Bandley","LIB_FEAT_ID":80}]}],"PHONE":[{"FEAT_DESC":"818-123-4567","LIB_FEAT_ID":82,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-123-4567","LIB_FEAT_ID":82}]},{"FEAT_DESC":"818-444-2121","LIB_FEAT_ID":83,"USAGE_TYPE":"MOBILE","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-444-2121","LIB_FEAT_ID":83}]}]},"RECORD_SUMMARY":[{"DATA_SOURCE":"EMPLOYEES","RECORD_COUNT":1}],"RECORDS":[{"DATA_SOURCE":"EMPLOYEES","RECORD_ID":"MNO345","INTERNAL_ID":5,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":""}]},"RELATED_ENTITIES":[{"ENTITY_ID":1,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+ADDRESS-DOB","ERRULE_CODE":"SFF","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Joseph Schmidt","RECORD_SUMMARY":[{"DATA_SOURCE":"PASSENGERS","RECORD_COUNT":1}]},{"ENTITY_ID":8,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+PHONE-DOB","ERRULE_CODE":"SF1","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Katrina Osmond","RECORD_SUMMARY":[{"DATA_SOURCE":"EMPLOYEES","RECORD_COUNT":1}]}]}
      {"RESOLVED_ENTITY":{"ENTITY_ID":6,"ENTITY_NAME":"Craig Smith","FEATURES":{"ADDRESS":[{"FEAT_DESC":"451 Dover Street, Los Angeles, CA 90018","LIB_FEAT_ID":108,"FEAT_DESC_VALUES":[{"FEAT_DESC":"451 Dover Street, Los Angeles, CA 90018","LIB_FEAT_ID":108}]}],"DOB":[{"FEAT_DESC":"17-OCT-1983","LIB_FEAT_ID":107,"FEAT_DESC_VALUES":[{"FEAT_DESC":"17-OCT-1983","LIB_FEAT_ID":107}]}],"NAME":[{"FEAT_DESC":"Craig Smith","LIB_FEAT_ID":106,"FEAT_DESC_VALUES":[{"FEAT_DESC":"Craig Smith","LIB_FEAT_ID":106}]}],"PHONE":[{"FEAT_DESC":"818-888-3939","LIB_FEAT_ID":23,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-888-3939","LIB_FEAT_ID":23}]},{"FEAT_DESC":"818-555-1212","LIB_FEAT_ID":109,"USAGE_TYPE":"MOBILE","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-555-1212","LIB_FEAT_ID":109}]}]},"RECORD_SUMMARY":[{"DATA_SOURCE":"EMPLOYEES","RECORD_COUNT":1}],"RECORDS":[{"DATA_SOURCE":"EMPLOYEES","RECORD_ID":"PQR678","INTERNAL_ID":6,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":""}]},"RELATED_ENTITIES":[{"ENTITY_ID":2,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+SURNAME+PHONE-DOB","ERRULE_CODE":"CFF_SURNAME","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Joann Smith","RECORD_SUMMARY":[{"DATA_SOURCE":"PASSENGERS","RECORD_COUNT":1}]},{"ENTITY_ID":7,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+ADDRESS-DOB","ERRULE_CODE":"SFF","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Kim Long","RECORD_SUMMARY":[{"DATA_SOURCE":"EMPLOYEES","RECORD_COUNT":1}]}]}
      {"RESOLVED_ENTITY":{"ENTITY_ID":7,"ENTITY_NAME":"Kim Long","FEATURES":{"ADDRESS":[{"FEAT_DESC":"451 Dover Street, Los Angeles, CA 90018","LIB_FEAT_ID":108,"FEAT_DESC_VALUES":[{"FEAT_DESC":"451 Dover Street, Los Angeles, CA 90018","LIB_FEAT_ID":108}]}],"DOB":[{"FEAT_DESC":"24-NOV-1975","LIB_FEAT_ID":134,"FEAT_DESC_VALUES":[{"FEAT_DESC":"24-NOV-1975","LIB_FEAT_ID":134}]}],"NAME":[{"FEAT_DESC":"Kim Long","LIB_FEAT_ID":133,"FEAT_DESC_VALUES":[{"FEAT_DESC":"Kim Long","LIB_FEAT_ID":133}]}],"PHONE":[{"FEAT_DESC":"818-135-7913","LIB_FEAT_ID":135,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-135-7913","LIB_FEAT_ID":135}]},{"FEAT_DESC":"818-246-8024","LIB_FEAT_ID":136,"USAGE_TYPE":"MOBILE","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-246-8024","LIB_FEAT_ID":136}]}]},"RECORD_SUMMARY":[{"DATA_SOURCE":"EMPLOYEES","RECORD_COUNT":1}],"RECORDS":[{"DATA_SOURCE":"EMPLOYEES","RECORD_ID":"ABC567","INTERNAL_ID":7,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":""}]},"RELATED_ENTITIES":[{"ENTITY_ID":6,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+ADDRESS-DOB","ERRULE_CODE":"SFF","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Craig Smith","RECORD_SUMMARY":[{"DATA_SOURCE":"EMPLOYEES","RECORD_COUNT":1}]}]}
      {"RESOLVED_ENTITY":{"ENTITY_ID":8,"ENTITY_NAME":"Katrina Osmond","FEATURES":{"ADDRESS":[{"FEAT_DESC":"707 Seventh Ave, Los Angeles, CA 90043","LIB_FEAT_ID":161,"FEAT_DESC_VALUES":[{"FEAT_DESC":"707 Seventh Ave, Los Angeles, CA 90043","LIB_FEAT_ID":161}]}],"DOB":[{"FEAT_DESC":"27-JUN-1980","LIB_FEAT_ID":160,"FEAT_DESC_VALUES":[{"FEAT_DESC":"27-JUN-1980","LIB_FEAT_ID":160}]}],"NAME":[{"FEAT_DESC":"Katrina Osmond","LIB_FEAT_ID":159,"FEAT_DESC_VALUES":[{"FEAT_DESC":"Katrina Osmond","LIB_FEAT_ID":159}]}],"PHONE":[{"FEAT_DESC":"818-111-2222","LIB_FEAT_ID":162,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-111-2222","LIB_FEAT_ID":162}]},{"FEAT_DESC":"818-444-2121","LIB_FEAT_ID":83,"USAGE_TYPE":"MOBILE","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-444-2121","LIB_FEAT_ID":83}]}]},"RECORD_SUMMARY":[{"DATA_SOURCE":"EMPLOYEES","RECORD_COUNT":1}],"RECORDS":[{"DATA_SOURCE":"EMPLOYEES","RECORD_ID":"DEF890","INTERNAL_ID":8,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":""}]},"RELATED_ENTITIES":[{"ENTITY_ID":5,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+PHONE-DOB","ERRULE_CODE":"SF1","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Bill Bandley","RECORD_SUMMARY":[{"DATA_SOURCE":"EMPLOYEES","RECORD_COUNT":1}]},{"ENTITY_ID":12,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+ADDRESS-DOB","ERRULE_CODE":"SFF","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Kelly Rogers","RECORD_SUMMARY":[{"DATA_SOURCE":"VIPS","RECORD_COUNT":1}]}]}
      {"RESOLVED_ENTITY":{"ENTITY_ID":9,"ENTITY_NAME":"Martha Wayne","FEATURES":{"ADDRESS":[{"FEAT_DESC":"888 Sepulveda Blvd, Los Angeles, CA 90034","LIB_FEAT_ID":178,"FEAT_DESC_VALUES":[{"FEAT_DESC":"888 Sepulveda Blvd, Los Angeles, CA 90034","LIB_FEAT_ID":178}]}],"DOB":[{"FEAT_DESC":"27-NOV-1973","LIB_FEAT_ID":177,"FEAT_DESC_VALUES":[{"FEAT_DESC":"27-NOV-1973","LIB_FEAT_ID":177}]}],"NAME":[{"FEAT_DESC":"Martha Wayne","LIB_FEAT_ID":176,"FEAT_DESC_VALUES":[{"FEAT_DESC":"Martha Wayne","LIB_FEAT_ID":176}]}],"PHONE":[{"FEAT_DESC":"818-987-1234","LIB_FEAT_ID":179,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-987-1234","LIB_FEAT_ID":179}]},{"FEAT_DESC":"818-891-9292","LIB_FEAT_ID":180,"USAGE_TYPE":"MOBILE","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-891-9292","LIB_FEAT_ID":180}]}]},"RECORD_SUMMARY":[{"DATA_SOURCE":"VIPS","RECORD_COUNT":1}],"RECORDS":[{"DATA_SOURCE":"VIPS","RECORD_ID":"STU901","INTERNAL_ID":9,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":""}]},"RELATED_ENTITIES":[{"ENTITY_ID":11,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+PNAME+ADDRESS-DOB","ERRULE_CODE":"SFF","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Martha Kent","RECORD_SUMMARY":[{"DATA_SOURCE":"VIPS","RECORD_COUNT":1}]}]}
      {"RESOLVED_ENTITY":{"ENTITY_ID":10,"ENTITY_NAME":"Jane Johnson","FEATURES":{"ADDRESS":[{"FEAT_DESC":"400 River Street, Pasadena, CA 90034","LIB_FEAT_ID":65,"FEAT_DESC_VALUES":[{"FEAT_DESC":"400 River Street, Pasadena, CA 90034","LIB_FEAT_ID":65}]}],"DOB":[{"FEAT_DESC":"6-SEP-1975","LIB_FEAT_ID":196,"FEAT_DESC_VALUES":[{"FEAT_DESC":"6-SEP-1975","LIB_FEAT_ID":196}]}],"NAME":[{"FEAT_DESC":"Jane Johnson","LIB_FEAT_ID":195,"FEAT_DESC_VALUES":[{"FEAT_DESC":"Jane Johnson","LIB_FEAT_ID":195}]}],"PHONE":[{"FEAT_DESC":"818-123-9876","LIB_FEAT_ID":197,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-123-9876","LIB_FEAT_ID":197}]},{"FEAT_DESC":"818-333-7171","LIB_FEAT_ID":198,"USAGE_TYPE":"MOBILE","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-333-7171","LIB_FEAT_ID":198}]}]},"RECORD_SUMMARY":[{"DATA_SOURCE":"VIPS","RECORD_COUNT":1}],"RECORDS":[{"DATA_SOURCE":"VIPS","RECORD_ID":"XYZ234","INTERNAL_ID":10,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":""}]},"RELATED_ENTITIES":[{"ENTITY_ID":4,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+PNAME+ADDRESS-DOB","ERRULE_CODE":"SFF","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Jane Donaldson","RECORD_SUMMARY":[{"DATA_SOURCE":"PASSENGERS","RECORD_COUNT":1}]},{"ENTITY_ID":11,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+PHONE-DOB","ERRULE_CODE":"SFF","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Martha Kent","RECORD_SUMMARY":[{"DATA_SOURCE":"VIPS","RECORD_COUNT":1}]},{"ENTITY_ID":12,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+PHONE-DOB","ERRULE_CODE":"SF1","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Kelly Rogers","RECORD_SUMMARY":[{"DATA_SOURCE":"VIPS","RECORD_COUNT":1}]}]}
      {"RESOLVED_ENTITY":{"ENTITY_ID":11,"ENTITY_NAME":"Martha Kent","FEATURES":{"ADDRESS":[{"FEAT_DESC":"888 Sepulveda Blvd, Los Angeles, CA 90034","LIB_FEAT_ID":178,"FEAT_DESC_VALUES":[{"FEAT_DESC":"888 Sepulveda Blvd, Los Angeles, CA 90034","LIB_FEAT_ID":178}]}],"DOB":[{"FEAT_DESC":"17-AUG-1978","LIB_FEAT_ID":222,"FEAT_DESC_VALUES":[{"FEAT_DESC":"17-AUG-1978","LIB_FEAT_ID":222}]}],"NAME":[{"FEAT_DESC":"Martha Kent","LIB_FEAT_ID":221,"FEAT_DESC_VALUES":[{"FEAT_DESC":"Martha Kent","LIB_FEAT_ID":221}]}],"PHONE":[{"FEAT_DESC":"818-123-9876","LIB_FEAT_ID":197,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-123-9876","LIB_FEAT_ID":197}]},{"FEAT_DESC":"818-333-5757","LIB_FEAT_ID":223,"USAGE_TYPE":"MOBILE","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-333-5757","LIB_FEAT_ID":223}]}]},"RECORD_SUMMARY":[{"DATA_SOURCE":"VIPS","RECORD_COUNT":1}],"RECORDS":[{"DATA_SOURCE":"VIPS","RECORD_ID":"GHI123","INTERNAL_ID":11,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":""}]},"RELATED_ENTITIES":[{"ENTITY_ID":9,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+PNAME+ADDRESS-DOB","ERRULE_CODE":"SFF","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Martha Wayne","RECORD_SUMMARY":[{"DATA_SOURCE":"VIPS","RECORD_COUNT":1}]},{"ENTITY_ID":10,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+PHONE-DOB","ERRULE_CODE":"SFF","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Jane Johnson","RECORD_SUMMARY":[{"DATA_SOURCE":"VIPS","RECORD_COUNT":1}]}]}
      {"RESOLVED_ENTITY":{"ENTITY_ID":12,"ENTITY_NAME":"Kelly Rogers","FEATURES":{"ADDRESS":[{"FEAT_DESC":"707 Seventh Ave, Los Angeles, CA 90043","LIB_FEAT_ID":161,"FEAT_DESC_VALUES":[{"FEAT_DESC":"707 Seventh Ave, Los Angeles, CA 90043","LIB_FEAT_ID":161}]}],"DOB":[{"FEAT_DESC":"15-JAN-1979","LIB_FEAT_ID":236,"FEAT_DESC_VALUES":[{"FEAT_DESC":"15-JAN-1979","LIB_FEAT_ID":236}]}],"NAME":[{"FEAT_DESC":"Kelly Rogers","LIB_FEAT_ID":235,"FEAT_DESC_VALUES":[{"FEAT_DESC":"Kelly Rogers","LIB_FEAT_ID":235}]}],"PHONE":[{"FEAT_DESC":"818-789-6543","LIB_FEAT_ID":237,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-789-6543","LIB_FEAT_ID":237}]},{"FEAT_DESC":"818-333-7171","LIB_FEAT_ID":198,"USAGE_TYPE":"MOBILE","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-333-7171","LIB_FEAT_ID":198}]}]},"RECORD_SUMMARY":[{"DATA_SOURCE":"VIPS","RECORD_COUNT":1}],"RECORDS":[{"DATA_SOURCE":"VIPS","RECORD_ID":"JKL456","INTERNAL_ID":12,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":""}]},"RELATED_ENTITIES":[{"ENTITY_ID":8,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+ADDRESS-DOB","ERRULE_CODE":"SFF","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Katrina Osmond","RECORD_SUMMARY":[{"DATA_SOURCE":"EMPLOYEES","RECORD_COUNT":1}]},{"ENTITY_ID":10,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+PHONE-DOB","ERRULE_CODE":"SF1","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Jane Johnson","RECORD_SUMMARY":[{"DATA_SOURCE":"VIPS","RECORD_COUNT":1}]}]}
      {"RESOLVED_ENTITY":{"ENTITY_ID":100002,"ENTITY_NAME":"Joseph W Schmoe","FEATURES":{"ADDRESS":[{"FEAT_DESC":"101 Main St.; Las Vegas, NV 89101","LIB_FEAT_ID":100011,"FEAT_DESC_VALUES":[{"FEAT_DESC":"101 Main St.; Las Vegas, NV 89101","LIB_FEAT_ID":100011}]}],"EMAIL":[{"FEAT_DESC":"joeschmoe@nowhere.com","LIB_FEAT_ID":100003,"FEAT_DESC_VALUES":[{"FEAT_DESC":"joeschmoe@nowhere.com","LIB_FEAT_ID":100003}]}],"NAME":[{"FEAT_DESC":"Joseph W Schmoe","LIB_FEAT_ID":100021,"FEAT_DESC_VALUES":[{"FEAT_DESC":"Joseph W Schmoe","LIB_FEAT_ID":100021},{"FEAT_DESC":"Joseph Schmoe","LIB_FEAT_ID":100010},{"FEAT_DESC":"Joe Schmoe","LIB_FEAT_ID":100001}]}],"PHONE":[{"FEAT_DESC":"702-555-1212","LIB_FEAT_ID":100002,"FEAT_DESC_VALUES":[{"FEAT_DESC":"702-555-1212","LIB_FEAT_ID":100002}]},{"FEAT_DESC":"702-555-1212","LIB_FEAT_ID":100002,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"702-555-1212","LIB_FEAT_ID":100002}]},{"FEAT_DESC":"702-555-1313","LIB_FEAT_ID":100012,"USAGE_TYPE":"WORK","FEAT_DESC_VALUES":[{"FEAT_DESC":"702-555-1313","LIB_FEAT_ID":100012}]}]},"RECORD_SUMMARY":[{"DATA_SOURCE":"TEST","RECORD_COUNT":3}],"RECORDS":[{"DATA_SOURCE":"TEST","RECORD_ID":"ABC123","INTERNAL_ID":100002,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":""},{"DATA_SOURCE":"TEST","RECORD_ID":"XYZ987","INTERNAL_ID":100003,"MATCH_KEY":"+NAME+EMAIL","MATCH_LEVEL_CODE":"RESOLVED","ERRULE_CODE":"SF1_CNAME"},{"DATA_SOURCE":"TEST","RECORD_ID":"ZYX789","INTERNAL_ID":100004,"MATCH_KEY":"+NAME+ADDRESS+PHONE","MATCH_LEVEL_CODE":"RESOLVED","ERRULE_CODE":"MFF_CNAME"}]},"RELATED_ENTITIES":[]}
      

      Returns:
      The export handle to use for retrieving the export data.
      Throws:
      SzException - If a failure occurs.
      See Also:
    • exportCsvEntityReport

      long exportCsvEntityReport(String csvColumnList, Set<SzFlag> flags) throws SzException
      Initiates an export report of entity data in CSV format.

      This is used in conjunction with fetchNext(long) and closeExportReport(long). The first fetchNext(long) call after calling this method returns the CSV header. Subsequent fetchNext(long) calls return exported entity data in CSV format.

      WARNING: Use with large repositories is not advised.

      The optionally specified Set of SzFlag instances that not only control how the operation is performed but also the level of detail provided for the entity and record being analyzed. The Set may contain any SzFlag value, but only flags belonging to the SzFlagUsageGroup.SZ_EXPORT_FLAGS group are guaranteed to be recognized (other SzFlag instances will be ignored unless they have equivalent bit flags).

      NOTE: EnumSet offers an efficient means of constructing a Set of SzFlag.

      Usage:

      // How to export entity data in CSV format
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // export the JSON data
          long exportHandle = engine.exportCsvEntityReport("*", SZ_EXPORT_DEFAULT_FLAGS);
      
          // read the data
          try {
              // fetch the CSV header line from the exported data
              String csvHeaders = engine.fetchNext(exportHandle);
      
              // process the CSV headers (varies by application)
              processCsvHeaders(csvHeaders);
      
              // fetch the first CSV record from the exported data
              String csvRecord = engine.fetchNext(exportHandle);
      
              while (csvRecord != null) {
                  // do something with the exported record (varies by application)
                  processCsvRecord(csvRecord);
      
                  // fetch the next exported CSV record
                  csvRecord = engine.fetchNext(exportHandle);
              }
      
          } finally {
              // close the export report handle
              engine.closeExportReport(exportHandle);
          }
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to perform CSV export.", e);
      }
      

      Example Complete Export Report:

      RESOLVED_ENTITY_ID,RESOLVED_ENTITY_NAME,RELATED_ENTITY_ID,MATCH_LEVEL,MATCH_LEVEL_CODE,MATCH_KEY,MATCH_KEY_DETAILS,IS_DISCLOSED,IS_AMBIGUOUS,DATA_SOURCE,RECORD_ID,JSON_DATA,FIRST_SEEN_DT,LAST_SEEN_DT,UNMAPPED_DATA,ERRULE_CODE,RELATED_ENTITY_NAME
      1,"Joseph Schmidt",0,0,"","","",0,0,"PASSENGERS","ABC123","{""RECORD_ID"":""ABC123"",""NAME_FIRST"":""Joseph"",""NAME_LAST"":""Schmidt"",""MOBILE_PHONE_NUMBER"":""213-555-1212"",""HOME_PHONE_NUMBER"":""818-777-2424"",""ADDR_FULL"":""101 Main Street, Los Angeles, CA 90011"",""DATE_OF_BIRTH"":""12-JAN-1981"",""DATA_SOURCE"":""PASSENGERS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","",""
      1,"Joseph Schmidt",2,3,"POSSIBLY_RELATED","+PHONE-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""PHONE"",""FTYPE_CODE"":""PHONE"",""SCORE_BEHAVIOR"":""F1"",""SOURCE"":""PHONE"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":5,""INBOUND_FEAT_DESC"":""213-555-1212"",""INBOUND_FEAT_USAGE_TYPE"":""MOBILE"",""CANDIDATE_FEAT_ID"":5,""CANDIDATE_FEAT_DESC"":""213-555-1212"",""CANDIDATE_FEAT_USAGE_TYPE"":""MOBILE"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":79,""ADDITIONAL_SCORES"":{""FULL_SCORE"":79},""INBOUND_FEAT_ID"":21,""INBOUND_FEAT_DESC"":""15-MAR-1982"",""CANDIDATE_FEAT_ID"":2,""CANDIDATE_FEAT_DESC"":""12-JAN-1981"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"PASSENGERS","DEF456","{""RECORD_ID"":""DEF456"",""NAME_FIRST"":""Joann"",""NAME_LAST"":""Smith"",""MOBILE_PHONE_NUMBER"":""213-555-1212"",""HOME_PHONE_NUMBER"":""818-888-3939"",""ADDR_FULL"":""101 Fifth Ave, Los Angeles, CA 90018"",""DATE_OF_BIRTH"":""15-MAR-1982"",""DATA_SOURCE"":""PASSENGERS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SF1","Joann Smith"
      1,"Joseph Schmidt",5,3,"POSSIBLY_RELATED","+ADDRESS-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""ADDRESS"",""FTYPE_CODE"":""ADDRESS"",""SCORE_BEHAVIOR"":""FF"",""SOURCE"":""ADDRESS"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":3,""INBOUND_FEAT_DESC"":""101 Main Street, Los Angeles, CA 90011"",""CANDIDATE_FEAT_ID"":3,""CANDIDATE_FEAT_DESC"":""101 Main Street, Los Angeles, CA 90011"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":82,""ADDITIONAL_SCORES"":{""FULL_SCORE"":82},""INBOUND_FEAT_ID"":81,""INBOUND_FEAT_DESC"":""22-AUG-1981"",""CANDIDATE_FEAT_ID"":2,""CANDIDATE_FEAT_DESC"":""12-JAN-1981"",""SCORE_BUCKET"":""UNLIKELY""}]}",0,0,"EMPLOYEES","MNO345","{""RECORD_ID"":""MNO345"",""NAME_FIRST"":""Bill"",""NAME_LAST"":""Bandley"",""MOBILE_PHONE_NUMBER"":""818-444-2121"",""HOME_PHONE_NUMBER"":""818-123-4567"",""ADDR_FULL"":""101 Main Street, Los Angeles, CA 90011"",""DATE_OF_BIRTH"":""22-AUG-1981"",""DATA_SOURCE"":""EMPLOYEES""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SFF","Bill Bandley"
      2,"Joann Smith",0,0,"","","",0,0,"PASSENGERS","DEF456","{""RECORD_ID"":""DEF456"",""NAME_FIRST"":""Joann"",""NAME_LAST"":""Smith"",""MOBILE_PHONE_NUMBER"":""213-555-1212"",""HOME_PHONE_NUMBER"":""818-888-3939"",""ADDR_FULL"":""101 Fifth Ave, Los Angeles, CA 90018"",""DATE_OF_BIRTH"":""15-MAR-1982"",""DATA_SOURCE"":""PASSENGERS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","",""
      2,"Joann Smith",1,3,"POSSIBLY_RELATED","+PHONE-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""PHONE"",""FTYPE_CODE"":""PHONE"",""SCORE_BEHAVIOR"":""F1"",""SOURCE"":""PHONE"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":5,""INBOUND_FEAT_DESC"":""213-555-1212"",""INBOUND_FEAT_USAGE_TYPE"":""MOBILE"",""CANDIDATE_FEAT_ID"":5,""CANDIDATE_FEAT_DESC"":""213-555-1212"",""CANDIDATE_FEAT_USAGE_TYPE"":""MOBILE"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":79,""ADDITIONAL_SCORES"":{""FULL_SCORE"":79},""INBOUND_FEAT_ID"":2,""INBOUND_FEAT_DESC"":""12-JAN-1981"",""CANDIDATE_FEAT_ID"":21,""CANDIDATE_FEAT_DESC"":""15-MAR-1982"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"PASSENGERS","ABC123","{""RECORD_ID"":""ABC123"",""NAME_FIRST"":""Joseph"",""NAME_LAST"":""Schmidt"",""MOBILE_PHONE_NUMBER"":""213-555-1212"",""HOME_PHONE_NUMBER"":""818-777-2424"",""ADDR_FULL"":""101 Main Street, Los Angeles, CA 90011"",""DATE_OF_BIRTH"":""12-JAN-1981"",""DATA_SOURCE"":""PASSENGERS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SF1","Joseph Schmidt"
      2,"Joann Smith",3,3,"POSSIBLY_RELATED","+ADDRESS-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""ADDRESS"",""FTYPE_CODE"":""ADDRESS"",""SCORE_BEHAVIOR"":""FF"",""SOURCE"":""ADDRESS"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":22,""INBOUND_FEAT_DESC"":""101 Fifth Ave, Los Angeles, CA 90018"",""CANDIDATE_FEAT_ID"":22,""CANDIDATE_FEAT_DESC"":""101 Fifth Ave, Los Angeles, CA 90018"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":69,""ADDITIONAL_SCORES"":{""FULL_SCORE"":69},""INBOUND_FEAT_ID"":48,""INBOUND_FEAT_DESC"":""17-DEC-1977"",""CANDIDATE_FEAT_ID"":21,""CANDIDATE_FEAT_DESC"":""15-MAR-1982"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"PASSENGERS","GHI789","{""RECORD_ID"":""GHI789"",""NAME_FIRST"":""John"",""NAME_LAST"":""Parker"",""MOBILE_PHONE_NUMBER"":""818-555-1313"",""HOME_PHONE_NUMBER"":""818-999-2121"",""ADDR_FULL"":""101 Fifth Ave, Los Angeles, CA 90018"",""DATE_OF_BIRTH"":""17-DEC-1977"",""DATA_SOURCE"":""PASSENGERS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SFF","John Parker"
      2,"Joann Smith",6,3,"POSSIBLY_RELATED","+SURNAME+PHONE-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""SURNAME"",""FTYPE_CODE"":""NAME"",""SCORE_BEHAVIOR"":""NAME"",""SOURCE"":""/SUR_NAME"",""SCORE"":67,""ADDITIONAL_SCORES"":{""GNR_FN"":67,""GNR_SN"":100,""GNR_GN"":34,""GENERATION_MATCH"":-1,""GNR_ON"":-1},""INBOUND_FEAT_ID"":106,""INBOUND_FEAT_DESC"":""Craig Smith"",""CANDIDATE_FEAT_ID"":20,""CANDIDATE_FEAT_DESC"":""Joann Smith"",""SCORE_BUCKET"":""UNLIKELY""},{""TOKEN"":""PHONE"",""FTYPE_CODE"":""PHONE"",""SCORE_BEHAVIOR"":""FF"",""SOURCE"":""PHONE"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":23,""INBOUND_FEAT_DESC"":""818-888-3939"",""INBOUND_FEAT_USAGE_TYPE"":""HOME"",""CANDIDATE_FEAT_ID"":23,""CANDIDATE_FEAT_DESC"":""818-888-3939"",""CANDIDATE_FEAT_USAGE_TYPE"":""HOME"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":81,""ADDITIONAL_SCORES"":{""FULL_SCORE"":81},""INBOUND_FEAT_ID"":107,""INBOUND_FEAT_DESC"":""17-OCT-1983"",""CANDIDATE_FEAT_ID"":21,""CANDIDATE_FEAT_DESC"":""15-MAR-1982"",""SCORE_BUCKET"":""UNLIKELY""}]}",0,0,"EMPLOYEES","PQR678","{""RECORD_ID"":""PQR678"",""NAME_FIRST"":""Craig"",""NAME_LAST"":""Smith"",""MOBILE_PHONE_NUMBER"":""818-555-1212"",""HOME_PHONE_NUMBER"":""818-888-3939"",""ADDR_FULL"":""451 Dover Street, Los Angeles, CA 90018"",""DATE_OF_BIRTH"":""17-OCT-1983"",""DATA_SOURCE"":""EMPLOYEES""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","CFF_SURNAME","Craig Smith"
      3,"John Parker",0,0,"","","",0,0,"PASSENGERS","GHI789","{""RECORD_ID"":""GHI789"",""NAME_FIRST"":""John"",""NAME_LAST"":""Parker"",""MOBILE_PHONE_NUMBER"":""818-555-1313"",""HOME_PHONE_NUMBER"":""818-999-2121"",""ADDR_FULL"":""101 Fifth Ave, Los Angeles, CA 90018"",""DATE_OF_BIRTH"":""17-DEC-1977"",""DATA_SOURCE"":""PASSENGERS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","",""
      3,"John Parker",2,3,"POSSIBLY_RELATED","+ADDRESS-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""ADDRESS"",""FTYPE_CODE"":""ADDRESS"",""SCORE_BEHAVIOR"":""FF"",""SOURCE"":""ADDRESS"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":22,""INBOUND_FEAT_DESC"":""101 Fifth Ave, Los Angeles, CA 90018"",""CANDIDATE_FEAT_ID"":22,""CANDIDATE_FEAT_DESC"":""101 Fifth Ave, Los Angeles, CA 90018"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":69,""ADDITIONAL_SCORES"":{""FULL_SCORE"":69},""INBOUND_FEAT_ID"":21,""INBOUND_FEAT_DESC"":""15-MAR-1982"",""CANDIDATE_FEAT_ID"":48,""CANDIDATE_FEAT_DESC"":""17-DEC-1977"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"PASSENGERS","DEF456","{""RECORD_ID"":""DEF456"",""NAME_FIRST"":""Joann"",""NAME_LAST"":""Smith"",""MOBILE_PHONE_NUMBER"":""213-555-1212"",""HOME_PHONE_NUMBER"":""818-888-3939"",""ADDR_FULL"":""101 Fifth Ave, Los Angeles, CA 90018"",""DATE_OF_BIRTH"":""15-MAR-1982"",""DATA_SOURCE"":""PASSENGERS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SFF","Joann Smith"
      3,"John Parker",4,3,"POSSIBLY_RELATED","+PHONE-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""PHONE"",""FTYPE_CODE"":""PHONE"",""SCORE_BEHAVIOR"":""F1"",""SOURCE"":""PHONE"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":50,""INBOUND_FEAT_DESC"":""818-555-1313"",""INBOUND_FEAT_USAGE_TYPE"":""MOBILE"",""CANDIDATE_FEAT_ID"":50,""CANDIDATE_FEAT_DESC"":""818-555-1313"",""CANDIDATE_FEAT_USAGE_TYPE"":""MOBILE"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":65,""ADDITIONAL_SCORES"":{""FULL_SCORE"":65},""INBOUND_FEAT_ID"":64,""INBOUND_FEAT_DESC"":""23-MAY-1973"",""CANDIDATE_FEAT_ID"":48,""CANDIDATE_FEAT_DESC"":""17-DEC-1977"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"PASSENGERS","JKL012","{""RECORD_ID"":""JKL012"",""NAME_FIRST"":""Jane"",""NAME_LAST"":""Donaldson"",""MOBILE_PHONE_NUMBER"":""818-555-1313"",""HOME_PHONE_NUMBER"":""818-222-3131"",""ADDR_FULL"":""400 River Street, Pasadena, CA 90034"",""DATE_OF_BIRTH"":""23-MAY-1973"",""DATA_SOURCE"":""PASSENGERS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SF1","Jane Donaldson"
      4,"Jane Donaldson",0,0,"","","",0,0,"PASSENGERS","JKL012","{""RECORD_ID"":""JKL012"",""NAME_FIRST"":""Jane"",""NAME_LAST"":""Donaldson"",""MOBILE_PHONE_NUMBER"":""818-555-1313"",""HOME_PHONE_NUMBER"":""818-222-3131"",""ADDR_FULL"":""400 River Street, Pasadena, CA 90034"",""DATE_OF_BIRTH"":""23-MAY-1973"",""DATA_SOURCE"":""PASSENGERS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","",""
      4,"Jane Donaldson",3,3,"POSSIBLY_RELATED","+PHONE-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""PHONE"",""FTYPE_CODE"":""PHONE"",""SCORE_BEHAVIOR"":""F1"",""SOURCE"":""PHONE"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":50,""INBOUND_FEAT_DESC"":""818-555-1313"",""INBOUND_FEAT_USAGE_TYPE"":""MOBILE"",""CANDIDATE_FEAT_ID"":50,""CANDIDATE_FEAT_DESC"":""818-555-1313"",""CANDIDATE_FEAT_USAGE_TYPE"":""MOBILE"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":65,""ADDITIONAL_SCORES"":{""FULL_SCORE"":65},""INBOUND_FEAT_ID"":48,""INBOUND_FEAT_DESC"":""17-DEC-1977"",""CANDIDATE_FEAT_ID"":64,""CANDIDATE_FEAT_DESC"":""23-MAY-1973"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"PASSENGERS","GHI789","{""RECORD_ID"":""GHI789"",""NAME_FIRST"":""John"",""NAME_LAST"":""Parker"",""MOBILE_PHONE_NUMBER"":""818-555-1313"",""HOME_PHONE_NUMBER"":""818-999-2121"",""ADDR_FULL"":""101 Fifth Ave, Los Angeles, CA 90018"",""DATE_OF_BIRTH"":""17-DEC-1977"",""DATA_SOURCE"":""PASSENGERS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SF1","John Parker"
      4,"Jane Donaldson",10,3,"POSSIBLY_RELATED","+PNAME+ADDRESS-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""PNAME"",""FTYPE_CODE"":""NAME"",""SCORE_BEHAVIOR"":""NAME"",""SOURCE"":""/PART_NAME"",""SCORE"":84,""ADDITIONAL_SCORES"":{""GNR_FN"":84,""GNR_SN"":68,""GNR_GN"":100,""GENERATION_MATCH"":-1,""GNR_ON"":-1},""INBOUND_FEAT_ID"":195,""INBOUND_FEAT_DESC"":""Jane Johnson"",""CANDIDATE_FEAT_ID"":63,""CANDIDATE_FEAT_DESC"":""Jane Donaldson"",""SCORE_BUCKET"":""LIKELY""},{""TOKEN"":""ADDRESS"",""FTYPE_CODE"":""ADDRESS"",""SCORE_BEHAVIOR"":""FF"",""SOURCE"":""ADDRESS"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":65,""INBOUND_FEAT_DESC"":""400 River Street, Pasadena, CA 90034"",""CANDIDATE_FEAT_ID"":65,""CANDIDATE_FEAT_DESC"":""400 River Street, Pasadena, CA 90034"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":63,""ADDITIONAL_SCORES"":{""FULL_SCORE"":63},""INBOUND_FEAT_ID"":196,""INBOUND_FEAT_DESC"":""6-SEP-1975"",""CANDIDATE_FEAT_ID"":64,""CANDIDATE_FEAT_DESC"":""23-MAY-1973"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"VIPS","XYZ234","{""RECORD_ID"":""XYZ234"",""NAME_FIRST"":""Jane"",""NAME_LAST"":""Johnson"",""MOBILE_PHONE_NUMBER"":""818-333-7171"",""HOME_PHONE_NUMBER"":""818-123-9876"",""ADDR_FULL"":""400 River Street, Pasadena, CA 90034"",""DATE_OF_BIRTH"":""6-SEP-1975"",""DATA_SOURCE"":""VIPS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SFF","Jane Johnson"
      5,"Bill Bandley",0,0,"","","",0,0,"EMPLOYEES","MNO345","{""RECORD_ID"":""MNO345"",""NAME_FIRST"":""Bill"",""NAME_LAST"":""Bandley"",""MOBILE_PHONE_NUMBER"":""818-444-2121"",""HOME_PHONE_NUMBER"":""818-123-4567"",""ADDR_FULL"":""101 Main Street, Los Angeles, CA 90011"",""DATE_OF_BIRTH"":""22-AUG-1981"",""DATA_SOURCE"":""EMPLOYEES""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","",""
      5,"Bill Bandley",1,3,"POSSIBLY_RELATED","+ADDRESS-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""ADDRESS"",""FTYPE_CODE"":""ADDRESS"",""SCORE_BEHAVIOR"":""FF"",""SOURCE"":""ADDRESS"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":3,""INBOUND_FEAT_DESC"":""101 Main Street, Los Angeles, CA 90011"",""CANDIDATE_FEAT_ID"":3,""CANDIDATE_FEAT_DESC"":""101 Main Street, Los Angeles, CA 90011"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":82,""ADDITIONAL_SCORES"":{""FULL_SCORE"":82},""INBOUND_FEAT_ID"":2,""INBOUND_FEAT_DESC"":""12-JAN-1981"",""CANDIDATE_FEAT_ID"":81,""CANDIDATE_FEAT_DESC"":""22-AUG-1981"",""SCORE_BUCKET"":""UNLIKELY""}]}",0,0,"PASSENGERS","ABC123","{""RECORD_ID"":""ABC123"",""NAME_FIRST"":""Joseph"",""NAME_LAST"":""Schmidt"",""MOBILE_PHONE_NUMBER"":""213-555-1212"",""HOME_PHONE_NUMBER"":""818-777-2424"",""ADDR_FULL"":""101 Main Street, Los Angeles, CA 90011"",""DATE_OF_BIRTH"":""12-JAN-1981"",""DATA_SOURCE"":""PASSENGERS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SFF","Joseph Schmidt"
      5,"Bill Bandley",8,3,"POSSIBLY_RELATED","+PHONE-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""PHONE"",""FTYPE_CODE"":""PHONE"",""SCORE_BEHAVIOR"":""F1"",""SOURCE"":""PHONE"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":83,""INBOUND_FEAT_DESC"":""818-444-2121"",""INBOUND_FEAT_USAGE_TYPE"":""MOBILE"",""CANDIDATE_FEAT_ID"":83,""CANDIDATE_FEAT_DESC"":""818-444-2121"",""CANDIDATE_FEAT_USAGE_TYPE"":""MOBILE"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":79,""ADDITIONAL_SCORES"":{""FULL_SCORE"":79},""INBOUND_FEAT_ID"":160,""INBOUND_FEAT_DESC"":""27-JUN-1980"",""CANDIDATE_FEAT_ID"":81,""CANDIDATE_FEAT_DESC"":""22-AUG-1981"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"EMPLOYEES","DEF890","{""RECORD_ID"":""DEF890"",""NAME_FIRST"":""Katrina"",""NAME_LAST"":""Osmond"",""MOBILE_PHONE_NUMBER"":""818-444-2121"",""HOME_PHONE_NUMBER"":""818-111-2222"",""ADDR_FULL"":""707 Seventh Ave, Los Angeles, CA 90043"",""DATE_OF_BIRTH"":""27-JUN-1980"",""DATA_SOURCE"":""EMPLOYEES""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SF1","Katrina Osmond"
      6,"Craig Smith",0,0,"","","",0,0,"EMPLOYEES","PQR678","{""RECORD_ID"":""PQR678"",""NAME_FIRST"":""Craig"",""NAME_LAST"":""Smith"",""MOBILE_PHONE_NUMBER"":""818-555-1212"",""HOME_PHONE_NUMBER"":""818-888-3939"",""ADDR_FULL"":""451 Dover Street, Los Angeles, CA 90018"",""DATE_OF_BIRTH"":""17-OCT-1983"",""DATA_SOURCE"":""EMPLOYEES""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","",""
      6,"Craig Smith",2,3,"POSSIBLY_RELATED","+SURNAME+PHONE-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""SURNAME"",""FTYPE_CODE"":""NAME"",""SCORE_BEHAVIOR"":""NAME"",""SOURCE"":""/SUR_NAME"",""SCORE"":67,""ADDITIONAL_SCORES"":{""GNR_FN"":67,""GNR_SN"":100,""GNR_GN"":34,""GENERATION_MATCH"":-1,""GNR_ON"":-1},""INBOUND_FEAT_ID"":20,""INBOUND_FEAT_DESC"":""Joann Smith"",""CANDIDATE_FEAT_ID"":106,""CANDIDATE_FEAT_DESC"":""Craig Smith"",""SCORE_BUCKET"":""UNLIKELY""},{""TOKEN"":""PHONE"",""FTYPE_CODE"":""PHONE"",""SCORE_BEHAVIOR"":""FF"",""SOURCE"":""PHONE"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":23,""INBOUND_FEAT_DESC"":""818-888-3939"",""INBOUND_FEAT_USAGE_TYPE"":""HOME"",""CANDIDATE_FEAT_ID"":23,""CANDIDATE_FEAT_DESC"":""818-888-3939"",""CANDIDATE_FEAT_USAGE_TYPE"":""HOME"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":81,""ADDITIONAL_SCORES"":{""FULL_SCORE"":81},""INBOUND_FEAT_ID"":21,""INBOUND_FEAT_DESC"":""15-MAR-1982"",""CANDIDATE_FEAT_ID"":107,""CANDIDATE_FEAT_DESC"":""17-OCT-1983"",""SCORE_BUCKET"":""UNLIKELY""}]}",0,0,"PASSENGERS","DEF456","{""RECORD_ID"":""DEF456"",""NAME_FIRST"":""Joann"",""NAME_LAST"":""Smith"",""MOBILE_PHONE_NUMBER"":""213-555-1212"",""HOME_PHONE_NUMBER"":""818-888-3939"",""ADDR_FULL"":""101 Fifth Ave, Los Angeles, CA 90018"",""DATE_OF_BIRTH"":""15-MAR-1982"",""DATA_SOURCE"":""PASSENGERS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","CFF_SURNAME","Joann Smith"
      6,"Craig Smith",7,3,"POSSIBLY_RELATED","+ADDRESS-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""ADDRESS"",""FTYPE_CODE"":""ADDRESS"",""SCORE_BEHAVIOR"":""FF"",""SOURCE"":""ADDRESS"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":108,""INBOUND_FEAT_DESC"":""451 Dover Street, Los Angeles, CA 90018"",""CANDIDATE_FEAT_ID"":108,""CANDIDATE_FEAT_DESC"":""451 Dover Street, Los Angeles, CA 90018"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":63,""ADDITIONAL_SCORES"":{""FULL_SCORE"":63},""INBOUND_FEAT_ID"":134,""INBOUND_FEAT_DESC"":""24-NOV-1975"",""CANDIDATE_FEAT_ID"":107,""CANDIDATE_FEAT_DESC"":""17-OCT-1983"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"EMPLOYEES","ABC567","{""RECORD_ID"":""ABC567"",""NAME_FIRST"":""Kim"",""NAME_LAST"":""Long"",""MOBILE_PHONE_NUMBER"":""818-246-8024"",""HOME_PHONE_NUMBER"":""818-135-7913"",""ADDR_FULL"":""451 Dover Street, Los Angeles, CA 90018"",""DATE_OF_BIRTH"":""24-NOV-1975"",""DATA_SOURCE"":""EMPLOYEES""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SFF","Kim Long"
      7,"Kim Long",0,0,"","","",0,0,"EMPLOYEES","ABC567","{""RECORD_ID"":""ABC567"",""NAME_FIRST"":""Kim"",""NAME_LAST"":""Long"",""MOBILE_PHONE_NUMBER"":""818-246-8024"",""HOME_PHONE_NUMBER"":""818-135-7913"",""ADDR_FULL"":""451 Dover Street, Los Angeles, CA 90018"",""DATE_OF_BIRTH"":""24-NOV-1975"",""DATA_SOURCE"":""EMPLOYEES""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","",""
      7,"Kim Long",6,3,"POSSIBLY_RELATED","+ADDRESS-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""ADDRESS"",""FTYPE_CODE"":""ADDRESS"",""SCORE_BEHAVIOR"":""FF"",""SOURCE"":""ADDRESS"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":108,""INBOUND_FEAT_DESC"":""451 Dover Street, Los Angeles, CA 90018"",""CANDIDATE_FEAT_ID"":108,""CANDIDATE_FEAT_DESC"":""451 Dover Street, Los Angeles, CA 90018"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":63,""ADDITIONAL_SCORES"":{""FULL_SCORE"":63},""INBOUND_FEAT_ID"":107,""INBOUND_FEAT_DESC"":""17-OCT-1983"",""CANDIDATE_FEAT_ID"":134,""CANDIDATE_FEAT_DESC"":""24-NOV-1975"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"EMPLOYEES","PQR678","{""RECORD_ID"":""PQR678"",""NAME_FIRST"":""Craig"",""NAME_LAST"":""Smith"",""MOBILE_PHONE_NUMBER"":""818-555-1212"",""HOME_PHONE_NUMBER"":""818-888-3939"",""ADDR_FULL"":""451 Dover Street, Los Angeles, CA 90018"",""DATE_OF_BIRTH"":""17-OCT-1983"",""DATA_SOURCE"":""EMPLOYEES""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SFF","Craig Smith"
      8,"Katrina Osmond",0,0,"","","",0,0,"EMPLOYEES","DEF890","{""RECORD_ID"":""DEF890"",""NAME_FIRST"":""Katrina"",""NAME_LAST"":""Osmond"",""MOBILE_PHONE_NUMBER"":""818-444-2121"",""HOME_PHONE_NUMBER"":""818-111-2222"",""ADDR_FULL"":""707 Seventh Ave, Los Angeles, CA 90043"",""DATE_OF_BIRTH"":""27-JUN-1980"",""DATA_SOURCE"":""EMPLOYEES""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","",""
      8,"Katrina Osmond",5,3,"POSSIBLY_RELATED","+PHONE-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""PHONE"",""FTYPE_CODE"":""PHONE"",""SCORE_BEHAVIOR"":""F1"",""SOURCE"":""PHONE"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":83,""INBOUND_FEAT_DESC"":""818-444-2121"",""INBOUND_FEAT_USAGE_TYPE"":""MOBILE"",""CANDIDATE_FEAT_ID"":83,""CANDIDATE_FEAT_DESC"":""818-444-2121"",""CANDIDATE_FEAT_USAGE_TYPE"":""MOBILE"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":79,""ADDITIONAL_SCORES"":{""FULL_SCORE"":79},""INBOUND_FEAT_ID"":81,""INBOUND_FEAT_DESC"":""22-AUG-1981"",""CANDIDATE_FEAT_ID"":160,""CANDIDATE_FEAT_DESC"":""27-JUN-1980"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"EMPLOYEES","MNO345","{""RECORD_ID"":""MNO345"",""NAME_FIRST"":""Bill"",""NAME_LAST"":""Bandley"",""MOBILE_PHONE_NUMBER"":""818-444-2121"",""HOME_PHONE_NUMBER"":""818-123-4567"",""ADDR_FULL"":""101 Main Street, Los Angeles, CA 90011"",""DATE_OF_BIRTH"":""22-AUG-1981"",""DATA_SOURCE"":""EMPLOYEES""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SF1","Bill Bandley"
      8,"Katrina Osmond",12,3,"POSSIBLY_RELATED","+ADDRESS-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""ADDRESS"",""FTYPE_CODE"":""ADDRESS"",""SCORE_BEHAVIOR"":""FF"",""SOURCE"":""ADDRESS"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":161,""INBOUND_FEAT_DESC"":""707 Seventh Ave, Los Angeles, CA 90043"",""CANDIDATE_FEAT_ID"":161,""CANDIDATE_FEAT_DESC"":""707 Seventh Ave, Los Angeles, CA 90043"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":70,""ADDITIONAL_SCORES"":{""FULL_SCORE"":70},""INBOUND_FEAT_ID"":236,""INBOUND_FEAT_DESC"":""15-JAN-1979"",""CANDIDATE_FEAT_ID"":160,""CANDIDATE_FEAT_DESC"":""27-JUN-1980"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"VIPS","JKL456","{""RECORD_ID"":""JKL456"",""NAME_FIRST"":""Kelly"",""NAME_LAST"":""Rogers"",""MOBILE_PHONE_NUMBER"":""818-333-7171"",""HOME_PHONE_NUMBER"":""818-789-6543"",""ADDR_FULL"":""707 Seventh Ave, Los Angeles, CA 90043"",""DATE_OF_BIRTH"":""15-JAN-1979"",""DATA_SOURCE"":""VIPS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SFF","Kelly Rogers"
      9,"Martha Wayne",0,0,"","","",0,0,"VIPS","STU901","{""RECORD_ID"":""STU901"",""NAME_FIRST"":""Martha"",""NAME_LAST"":""Wayne"",""MOBILE_PHONE_NUMBER"":""818-891-9292"",""HOME_PHONE_NUMBER"":""818-987-1234"",""ADDR_FULL"":""888 Sepulveda Blvd, Los Angeles, CA 90034"",""DATE_OF_BIRTH"":""27-NOV-1973"",""DATA_SOURCE"":""VIPS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","",""
      9,"Martha Wayne",11,3,"POSSIBLY_RELATED","+PNAME+ADDRESS-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""PNAME"",""FTYPE_CODE"":""NAME"",""SCORE_BEHAVIOR"":""NAME"",""SOURCE"":""/PART_NAME"",""SCORE"":68,""ADDITIONAL_SCORES"":{""GNR_FN"":68,""GNR_SN"":34,""GNR_GN"":100,""GENERATION_MATCH"":-1,""GNR_ON"":-1},""INBOUND_FEAT_ID"":221,""INBOUND_FEAT_DESC"":""Martha Kent"",""CANDIDATE_FEAT_ID"":176,""CANDIDATE_FEAT_DESC"":""Martha Wayne"",""SCORE_BUCKET"":""UNLIKELY""},{""TOKEN"":""ADDRESS"",""FTYPE_CODE"":""ADDRESS"",""SCORE_BEHAVIOR"":""FF"",""SOURCE"":""ADDRESS"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":178,""INBOUND_FEAT_DESC"":""888 Sepulveda Blvd, Los Angeles, CA 90034"",""CANDIDATE_FEAT_ID"":178,""CANDIDATE_FEAT_DESC"":""888 Sepulveda Blvd, Los Angeles, CA 90034"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":67,""ADDITIONAL_SCORES"":{""FULL_SCORE"":67},""INBOUND_FEAT_ID"":222,""INBOUND_FEAT_DESC"":""17-AUG-1978"",""CANDIDATE_FEAT_ID"":177,""CANDIDATE_FEAT_DESC"":""27-NOV-1973"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"VIPS","GHI123","{""RECORD_ID"":""GHI123"",""NAME_FIRST"":""Martha"",""NAME_LAST"":""Kent"",""MOBILE_PHONE_NUMBER"":""818-333-5757"",""HOME_PHONE_NUMBER"":""818-123-9876"",""ADDR_FULL"":""888 Sepulveda Blvd, Los Angeles, CA 90034"",""DATE_OF_BIRTH"":""17-AUG-1978"",""DATA_SOURCE"":""VIPS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SFF","Martha Kent"
      10,"Jane Johnson",0,0,"","","",0,0,"VIPS","XYZ234","{""RECORD_ID"":""XYZ234"",""NAME_FIRST"":""Jane"",""NAME_LAST"":""Johnson"",""MOBILE_PHONE_NUMBER"":""818-333-7171"",""HOME_PHONE_NUMBER"":""818-123-9876"",""ADDR_FULL"":""400 River Street, Pasadena, CA 90034"",""DATE_OF_BIRTH"":""6-SEP-1975"",""DATA_SOURCE"":""VIPS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","",""
      10,"Jane Johnson",4,3,"POSSIBLY_RELATED","+PNAME+ADDRESS-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""PNAME"",""FTYPE_CODE"":""NAME"",""SCORE_BEHAVIOR"":""NAME"",""SOURCE"":""/PART_NAME"",""SCORE"":84,""ADDITIONAL_SCORES"":{""GNR_FN"":84,""GNR_SN"":68,""GNR_GN"":100,""GENERATION_MATCH"":-1,""GNR_ON"":-1},""INBOUND_FEAT_ID"":63,""INBOUND_FEAT_DESC"":""Jane Donaldson"",""CANDIDATE_FEAT_ID"":195,""CANDIDATE_FEAT_DESC"":""Jane Johnson"",""SCORE_BUCKET"":""LIKELY""},{""TOKEN"":""ADDRESS"",""FTYPE_CODE"":""ADDRESS"",""SCORE_BEHAVIOR"":""FF"",""SOURCE"":""ADDRESS"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":65,""INBOUND_FEAT_DESC"":""400 River Street, Pasadena, CA 90034"",""CANDIDATE_FEAT_ID"":65,""CANDIDATE_FEAT_DESC"":""400 River Street, Pasadena, CA 90034"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":63,""ADDITIONAL_SCORES"":{""FULL_SCORE"":63},""INBOUND_FEAT_ID"":64,""INBOUND_FEAT_DESC"":""23-MAY-1973"",""CANDIDATE_FEAT_ID"":196,""CANDIDATE_FEAT_DESC"":""6-SEP-1975"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"PASSENGERS","JKL012","{""RECORD_ID"":""JKL012"",""NAME_FIRST"":""Jane"",""NAME_LAST"":""Donaldson"",""MOBILE_PHONE_NUMBER"":""818-555-1313"",""HOME_PHONE_NUMBER"":""818-222-3131"",""ADDR_FULL"":""400 River Street, Pasadena, CA 90034"",""DATE_OF_BIRTH"":""23-MAY-1973"",""DATA_SOURCE"":""PASSENGERS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SFF","Jane Donaldson"
      10,"Jane Johnson",11,3,"POSSIBLY_RELATED","+PHONE-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""PHONE"",""FTYPE_CODE"":""PHONE"",""SCORE_BEHAVIOR"":""FF"",""SOURCE"":""PHONE"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":197,""INBOUND_FEAT_DESC"":""818-123-9876"",""INBOUND_FEAT_USAGE_TYPE"":""HOME"",""CANDIDATE_FEAT_ID"":197,""CANDIDATE_FEAT_DESC"":""818-123-9876"",""CANDIDATE_FEAT_USAGE_TYPE"":""HOME"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":67,""ADDITIONAL_SCORES"":{""FULL_SCORE"":67},""INBOUND_FEAT_ID"":222,""INBOUND_FEAT_DESC"":""17-AUG-1978"",""CANDIDATE_FEAT_ID"":196,""CANDIDATE_FEAT_DESC"":""6-SEP-1975"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"VIPS","GHI123","{""RECORD_ID"":""GHI123"",""NAME_FIRST"":""Martha"",""NAME_LAST"":""Kent"",""MOBILE_PHONE_NUMBER"":""818-333-5757"",""HOME_PHONE_NUMBER"":""818-123-9876"",""ADDR_FULL"":""888 Sepulveda Blvd, Los Angeles, CA 90034"",""DATE_OF_BIRTH"":""17-AUG-1978"",""DATA_SOURCE"":""VIPS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SFF","Martha Kent"
      10,"Jane Johnson",12,3,"POSSIBLY_RELATED","+PHONE-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""PHONE"",""FTYPE_CODE"":""PHONE"",""SCORE_BEHAVIOR"":""F1"",""SOURCE"":""PHONE"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":198,""INBOUND_FEAT_DESC"":""818-333-7171"",""INBOUND_FEAT_USAGE_TYPE"":""MOBILE"",""CANDIDATE_FEAT_ID"":198,""CANDIDATE_FEAT_DESC"":""818-333-7171"",""CANDIDATE_FEAT_USAGE_TYPE"":""MOBILE"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":76,""ADDITIONAL_SCORES"":{""FULL_SCORE"":76},""INBOUND_FEAT_ID"":236,""INBOUND_FEAT_DESC"":""15-JAN-1979"",""CANDIDATE_FEAT_ID"":196,""CANDIDATE_FEAT_DESC"":""6-SEP-1975"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"VIPS","JKL456","{""RECORD_ID"":""JKL456"",""NAME_FIRST"":""Kelly"",""NAME_LAST"":""Rogers"",""MOBILE_PHONE_NUMBER"":""818-333-7171"",""HOME_PHONE_NUMBER"":""818-789-6543"",""ADDR_FULL"":""707 Seventh Ave, Los Angeles, CA 90043"",""DATE_OF_BIRTH"":""15-JAN-1979"",""DATA_SOURCE"":""VIPS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SF1","Kelly Rogers"
      11,"Martha Kent",0,0,"","","",0,0,"VIPS","GHI123","{""RECORD_ID"":""GHI123"",""NAME_FIRST"":""Martha"",""NAME_LAST"":""Kent"",""MOBILE_PHONE_NUMBER"":""818-333-5757"",""HOME_PHONE_NUMBER"":""818-123-9876"",""ADDR_FULL"":""888 Sepulveda Blvd, Los Angeles, CA 90034"",""DATE_OF_BIRTH"":""17-AUG-1978"",""DATA_SOURCE"":""VIPS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","",""
      11,"Martha Kent",9,3,"POSSIBLY_RELATED","+PNAME+ADDRESS-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""PNAME"",""FTYPE_CODE"":""NAME"",""SCORE_BEHAVIOR"":""NAME"",""SOURCE"":""/PART_NAME"",""SCORE"":68,""ADDITIONAL_SCORES"":{""GNR_FN"":68,""GNR_SN"":34,""GNR_GN"":100,""GENERATION_MATCH"":-1,""GNR_ON"":-1},""INBOUND_FEAT_ID"":176,""INBOUND_FEAT_DESC"":""Martha Wayne"",""CANDIDATE_FEAT_ID"":221,""CANDIDATE_FEAT_DESC"":""Martha Kent"",""SCORE_BUCKET"":""UNLIKELY""},{""TOKEN"":""ADDRESS"",""FTYPE_CODE"":""ADDRESS"",""SCORE_BEHAVIOR"":""FF"",""SOURCE"":""ADDRESS"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":178,""INBOUND_FEAT_DESC"":""888 Sepulveda Blvd, Los Angeles, CA 90034"",""CANDIDATE_FEAT_ID"":178,""CANDIDATE_FEAT_DESC"":""888 Sepulveda Blvd, Los Angeles, CA 90034"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":67,""ADDITIONAL_SCORES"":{""FULL_SCORE"":67},""INBOUND_FEAT_ID"":177,""INBOUND_FEAT_DESC"":""27-NOV-1973"",""CANDIDATE_FEAT_ID"":222,""CANDIDATE_FEAT_DESC"":""17-AUG-1978"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"VIPS","STU901","{""RECORD_ID"":""STU901"",""NAME_FIRST"":""Martha"",""NAME_LAST"":""Wayne"",""MOBILE_PHONE_NUMBER"":""818-891-9292"",""HOME_PHONE_NUMBER"":""818-987-1234"",""ADDR_FULL"":""888 Sepulveda Blvd, Los Angeles, CA 90034"",""DATE_OF_BIRTH"":""27-NOV-1973"",""DATA_SOURCE"":""VIPS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SFF","Martha Wayne"
      11,"Martha Kent",10,3,"POSSIBLY_RELATED","+PHONE-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""PHONE"",""FTYPE_CODE"":""PHONE"",""SCORE_BEHAVIOR"":""FF"",""SOURCE"":""PHONE"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":197,""INBOUND_FEAT_DESC"":""818-123-9876"",""INBOUND_FEAT_USAGE_TYPE"":""HOME"",""CANDIDATE_FEAT_ID"":197,""CANDIDATE_FEAT_DESC"":""818-123-9876"",""CANDIDATE_FEAT_USAGE_TYPE"":""HOME"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":67,""ADDITIONAL_SCORES"":{""FULL_SCORE"":67},""INBOUND_FEAT_ID"":196,""INBOUND_FEAT_DESC"":""6-SEP-1975"",""CANDIDATE_FEAT_ID"":222,""CANDIDATE_FEAT_DESC"":""17-AUG-1978"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"VIPS","XYZ234","{""RECORD_ID"":""XYZ234"",""NAME_FIRST"":""Jane"",""NAME_LAST"":""Johnson"",""MOBILE_PHONE_NUMBER"":""818-333-7171"",""HOME_PHONE_NUMBER"":""818-123-9876"",""ADDR_FULL"":""400 River Street, Pasadena, CA 90034"",""DATE_OF_BIRTH"":""6-SEP-1975"",""DATA_SOURCE"":""VIPS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SFF","Jane Johnson"
      12,"Kelly Rogers",0,0,"","","",0,0,"VIPS","JKL456","{""RECORD_ID"":""JKL456"",""NAME_FIRST"":""Kelly"",""NAME_LAST"":""Rogers"",""MOBILE_PHONE_NUMBER"":""818-333-7171"",""HOME_PHONE_NUMBER"":""818-789-6543"",""ADDR_FULL"":""707 Seventh Ave, Los Angeles, CA 90043"",""DATE_OF_BIRTH"":""15-JAN-1979"",""DATA_SOURCE"":""VIPS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","",""
      12,"Kelly Rogers",8,3,"POSSIBLY_RELATED","+ADDRESS-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""ADDRESS"",""FTYPE_CODE"":""ADDRESS"",""SCORE_BEHAVIOR"":""FF"",""SOURCE"":""ADDRESS"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":161,""INBOUND_FEAT_DESC"":""707 Seventh Ave, Los Angeles, CA 90043"",""CANDIDATE_FEAT_ID"":161,""CANDIDATE_FEAT_DESC"":""707 Seventh Ave, Los Angeles, CA 90043"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":70,""ADDITIONAL_SCORES"":{""FULL_SCORE"":70},""INBOUND_FEAT_ID"":160,""INBOUND_FEAT_DESC"":""27-JUN-1980"",""CANDIDATE_FEAT_ID"":236,""CANDIDATE_FEAT_DESC"":""15-JAN-1979"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"EMPLOYEES","DEF890","{""RECORD_ID"":""DEF890"",""NAME_FIRST"":""Katrina"",""NAME_LAST"":""Osmond"",""MOBILE_PHONE_NUMBER"":""818-444-2121"",""HOME_PHONE_NUMBER"":""818-111-2222"",""ADDR_FULL"":""707 Seventh Ave, Los Angeles, CA 90043"",""DATE_OF_BIRTH"":""27-JUN-1980"",""DATA_SOURCE"":""EMPLOYEES""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SFF","Katrina Osmond"
      12,"Kelly Rogers",10,3,"POSSIBLY_RELATED","+PHONE-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""PHONE"",""FTYPE_CODE"":""PHONE"",""SCORE_BEHAVIOR"":""F1"",""SOURCE"":""PHONE"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":198,""INBOUND_FEAT_DESC"":""818-333-7171"",""INBOUND_FEAT_USAGE_TYPE"":""MOBILE"",""CANDIDATE_FEAT_ID"":198,""CANDIDATE_FEAT_DESC"":""818-333-7171"",""CANDIDATE_FEAT_USAGE_TYPE"":""MOBILE"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":76,""ADDITIONAL_SCORES"":{""FULL_SCORE"":76},""INBOUND_FEAT_ID"":196,""INBOUND_FEAT_DESC"":""6-SEP-1975"",""CANDIDATE_FEAT_ID"":236,""CANDIDATE_FEAT_DESC"":""15-JAN-1979"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"VIPS","XYZ234","{""RECORD_ID"":""XYZ234"",""NAME_FIRST"":""Jane"",""NAME_LAST"":""Johnson"",""MOBILE_PHONE_NUMBER"":""818-333-7171"",""HOME_PHONE_NUMBER"":""818-123-9876"",""ADDR_FULL"":""400 River Street, Pasadena, CA 90034"",""DATE_OF_BIRTH"":""6-SEP-1975"",""DATA_SOURCE"":""VIPS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SF1","Jane Johnson"
      100002,"Joe Schmoe",0,0,"","","",0,0,"TEST","ABC123","{""DATA_SOURCE"":""TEST"",""RECORD_ID"":""ABC123"",""NAME_FULL"":""Joe Schmoe"",""PHONE_NUMBER"":""702-555-1212"",""EMAIL_ADDRESS"":""joeschmoe@nowhere.com""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","",""
      

      Parameters:
      csvColumnList - Specify "*" to indicate "all columns", specify empty-string to indicate the "standard columns", otherwise specify a comma-separated list of column names.
      flags - The optional Set of SzFlag instances belonging to the SzFlagUsageGroup.SZ_EXPORT_FLAGS group to control how the operation is performed and the content of the export, or null to default to SzFlag.SZ_NO_FLAGS or SzFlag.SZ_EXPORT_DEFAULT_FLAGS for the default recommended flags.
      Returns:
      The export handle to use for retrieving the export data.
      Throws:
      SzException - If a failure occurs.
      See Also:
    • exportCsvEntityReport

      default long exportCsvEntityReport(String csvColumnList) throws SzException
      Convenience method for calling exportCsvEntityReport(String, Set) using SzFlag.SZ_EXPORT_DEFAULT_FLAGS as the value for the flags parameter. See the exportCsvEntityReport(String, Set) documentation for details.

      Usage:

      // How to export entity data in CSV format
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // export the JSON data
          long exportHandle = engine.exportCsvEntityReport("*");
      
          // read the data
          try {
              // fetch the CSV header line from the exported data
              String csvHeaders = engine.fetchNext(exportHandle);
      
              // process the CSV headers (varies by application)
              processCsvHeaders(csvHeaders);
      
              // fetch the first CSV record from the exported data
              String csvRecord = engine.fetchNext(exportHandle);
      
              while (csvRecord != null) {
                  // do something with the exported record (varies by application)
                  processCsvRecord(csvRecord);
      
                  // fetch the next exported CSV record
                  csvRecord = engine.fetchNext(exportHandle);
              }
      
          } finally {
              // close the export report handle
              engine.closeExportReport(exportHandle);
          }
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to perform CSV export.", e);
      }
      

      Example Complete Export Report:

      RESOLVED_ENTITY_ID,RESOLVED_ENTITY_NAME,RELATED_ENTITY_ID,MATCH_LEVEL,MATCH_LEVEL_CODE,MATCH_KEY,MATCH_KEY_DETAILS,IS_DISCLOSED,IS_AMBIGUOUS,DATA_SOURCE,RECORD_ID,JSON_DATA,FIRST_SEEN_DT,LAST_SEEN_DT,UNMAPPED_DATA,ERRULE_CODE,RELATED_ENTITY_NAME
      1,"Joseph Schmidt",0,0,"","","",0,0,"PASSENGERS","ABC123","{""RECORD_ID"":""ABC123"",""NAME_FIRST"":""Joseph"",""NAME_LAST"":""Schmidt"",""MOBILE_PHONE_NUMBER"":""213-555-1212"",""HOME_PHONE_NUMBER"":""818-777-2424"",""ADDR_FULL"":""101 Main Street, Los Angeles, CA 90011"",""DATE_OF_BIRTH"":""12-JAN-1981"",""DATA_SOURCE"":""PASSENGERS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","",""
      1,"Joseph Schmidt",2,3,"POSSIBLY_RELATED","+PHONE-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""PHONE"",""FTYPE_CODE"":""PHONE"",""SCORE_BEHAVIOR"":""F1"",""SOURCE"":""PHONE"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":5,""INBOUND_FEAT_DESC"":""213-555-1212"",""INBOUND_FEAT_USAGE_TYPE"":""MOBILE"",""CANDIDATE_FEAT_ID"":5,""CANDIDATE_FEAT_DESC"":""213-555-1212"",""CANDIDATE_FEAT_USAGE_TYPE"":""MOBILE"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":79,""ADDITIONAL_SCORES"":{""FULL_SCORE"":79},""INBOUND_FEAT_ID"":21,""INBOUND_FEAT_DESC"":""15-MAR-1982"",""CANDIDATE_FEAT_ID"":2,""CANDIDATE_FEAT_DESC"":""12-JAN-1981"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"PASSENGERS","DEF456","{""RECORD_ID"":""DEF456"",""NAME_FIRST"":""Joann"",""NAME_LAST"":""Smith"",""MOBILE_PHONE_NUMBER"":""213-555-1212"",""HOME_PHONE_NUMBER"":""818-888-3939"",""ADDR_FULL"":""101 Fifth Ave, Los Angeles, CA 90018"",""DATE_OF_BIRTH"":""15-MAR-1982"",""DATA_SOURCE"":""PASSENGERS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SF1","Joann Smith"
      1,"Joseph Schmidt",5,3,"POSSIBLY_RELATED","+ADDRESS-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""ADDRESS"",""FTYPE_CODE"":""ADDRESS"",""SCORE_BEHAVIOR"":""FF"",""SOURCE"":""ADDRESS"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":3,""INBOUND_FEAT_DESC"":""101 Main Street, Los Angeles, CA 90011"",""CANDIDATE_FEAT_ID"":3,""CANDIDATE_FEAT_DESC"":""101 Main Street, Los Angeles, CA 90011"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":82,""ADDITIONAL_SCORES"":{""FULL_SCORE"":82},""INBOUND_FEAT_ID"":81,""INBOUND_FEAT_DESC"":""22-AUG-1981"",""CANDIDATE_FEAT_ID"":2,""CANDIDATE_FEAT_DESC"":""12-JAN-1981"",""SCORE_BUCKET"":""UNLIKELY""}]}",0,0,"EMPLOYEES","MNO345","{""RECORD_ID"":""MNO345"",""NAME_FIRST"":""Bill"",""NAME_LAST"":""Bandley"",""MOBILE_PHONE_NUMBER"":""818-444-2121"",""HOME_PHONE_NUMBER"":""818-123-4567"",""ADDR_FULL"":""101 Main Street, Los Angeles, CA 90011"",""DATE_OF_BIRTH"":""22-AUG-1981"",""DATA_SOURCE"":""EMPLOYEES""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SFF","Bill Bandley"
      2,"Joann Smith",0,0,"","","",0,0,"PASSENGERS","DEF456","{""RECORD_ID"":""DEF456"",""NAME_FIRST"":""Joann"",""NAME_LAST"":""Smith"",""MOBILE_PHONE_NUMBER"":""213-555-1212"",""HOME_PHONE_NUMBER"":""818-888-3939"",""ADDR_FULL"":""101 Fifth Ave, Los Angeles, CA 90018"",""DATE_OF_BIRTH"":""15-MAR-1982"",""DATA_SOURCE"":""PASSENGERS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","",""
      2,"Joann Smith",1,3,"POSSIBLY_RELATED","+PHONE-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""PHONE"",""FTYPE_CODE"":""PHONE"",""SCORE_BEHAVIOR"":""F1"",""SOURCE"":""PHONE"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":5,""INBOUND_FEAT_DESC"":""213-555-1212"",""INBOUND_FEAT_USAGE_TYPE"":""MOBILE"",""CANDIDATE_FEAT_ID"":5,""CANDIDATE_FEAT_DESC"":""213-555-1212"",""CANDIDATE_FEAT_USAGE_TYPE"":""MOBILE"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":79,""ADDITIONAL_SCORES"":{""FULL_SCORE"":79},""INBOUND_FEAT_ID"":2,""INBOUND_FEAT_DESC"":""12-JAN-1981"",""CANDIDATE_FEAT_ID"":21,""CANDIDATE_FEAT_DESC"":""15-MAR-1982"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"PASSENGERS","ABC123","{""RECORD_ID"":""ABC123"",""NAME_FIRST"":""Joseph"",""NAME_LAST"":""Schmidt"",""MOBILE_PHONE_NUMBER"":""213-555-1212"",""HOME_PHONE_NUMBER"":""818-777-2424"",""ADDR_FULL"":""101 Main Street, Los Angeles, CA 90011"",""DATE_OF_BIRTH"":""12-JAN-1981"",""DATA_SOURCE"":""PASSENGERS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SF1","Joseph Schmidt"
      2,"Joann Smith",3,3,"POSSIBLY_RELATED","+ADDRESS-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""ADDRESS"",""FTYPE_CODE"":""ADDRESS"",""SCORE_BEHAVIOR"":""FF"",""SOURCE"":""ADDRESS"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":22,""INBOUND_FEAT_DESC"":""101 Fifth Ave, Los Angeles, CA 90018"",""CANDIDATE_FEAT_ID"":22,""CANDIDATE_FEAT_DESC"":""101 Fifth Ave, Los Angeles, CA 90018"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":69,""ADDITIONAL_SCORES"":{""FULL_SCORE"":69},""INBOUND_FEAT_ID"":48,""INBOUND_FEAT_DESC"":""17-DEC-1977"",""CANDIDATE_FEAT_ID"":21,""CANDIDATE_FEAT_DESC"":""15-MAR-1982"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"PASSENGERS","GHI789","{""RECORD_ID"":""GHI789"",""NAME_FIRST"":""John"",""NAME_LAST"":""Parker"",""MOBILE_PHONE_NUMBER"":""818-555-1313"",""HOME_PHONE_NUMBER"":""818-999-2121"",""ADDR_FULL"":""101 Fifth Ave, Los Angeles, CA 90018"",""DATE_OF_BIRTH"":""17-DEC-1977"",""DATA_SOURCE"":""PASSENGERS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SFF","John Parker"
      2,"Joann Smith",6,3,"POSSIBLY_RELATED","+SURNAME+PHONE-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""SURNAME"",""FTYPE_CODE"":""NAME"",""SCORE_BEHAVIOR"":""NAME"",""SOURCE"":""/SUR_NAME"",""SCORE"":67,""ADDITIONAL_SCORES"":{""GNR_FN"":67,""GNR_SN"":100,""GNR_GN"":34,""GENERATION_MATCH"":-1,""GNR_ON"":-1},""INBOUND_FEAT_ID"":106,""INBOUND_FEAT_DESC"":""Craig Smith"",""CANDIDATE_FEAT_ID"":20,""CANDIDATE_FEAT_DESC"":""Joann Smith"",""SCORE_BUCKET"":""UNLIKELY""},{""TOKEN"":""PHONE"",""FTYPE_CODE"":""PHONE"",""SCORE_BEHAVIOR"":""FF"",""SOURCE"":""PHONE"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":23,""INBOUND_FEAT_DESC"":""818-888-3939"",""INBOUND_FEAT_USAGE_TYPE"":""HOME"",""CANDIDATE_FEAT_ID"":23,""CANDIDATE_FEAT_DESC"":""818-888-3939"",""CANDIDATE_FEAT_USAGE_TYPE"":""HOME"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":81,""ADDITIONAL_SCORES"":{""FULL_SCORE"":81},""INBOUND_FEAT_ID"":107,""INBOUND_FEAT_DESC"":""17-OCT-1983"",""CANDIDATE_FEAT_ID"":21,""CANDIDATE_FEAT_DESC"":""15-MAR-1982"",""SCORE_BUCKET"":""UNLIKELY""}]}",0,0,"EMPLOYEES","PQR678","{""RECORD_ID"":""PQR678"",""NAME_FIRST"":""Craig"",""NAME_LAST"":""Smith"",""MOBILE_PHONE_NUMBER"":""818-555-1212"",""HOME_PHONE_NUMBER"":""818-888-3939"",""ADDR_FULL"":""451 Dover Street, Los Angeles, CA 90018"",""DATE_OF_BIRTH"":""17-OCT-1983"",""DATA_SOURCE"":""EMPLOYEES""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","CFF_SURNAME","Craig Smith"
      3,"John Parker",0,0,"","","",0,0,"PASSENGERS","GHI789","{""RECORD_ID"":""GHI789"",""NAME_FIRST"":""John"",""NAME_LAST"":""Parker"",""MOBILE_PHONE_NUMBER"":""818-555-1313"",""HOME_PHONE_NUMBER"":""818-999-2121"",""ADDR_FULL"":""101 Fifth Ave, Los Angeles, CA 90018"",""DATE_OF_BIRTH"":""17-DEC-1977"",""DATA_SOURCE"":""PASSENGERS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","",""
      3,"John Parker",2,3,"POSSIBLY_RELATED","+ADDRESS-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""ADDRESS"",""FTYPE_CODE"":""ADDRESS"",""SCORE_BEHAVIOR"":""FF"",""SOURCE"":""ADDRESS"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":22,""INBOUND_FEAT_DESC"":""101 Fifth Ave, Los Angeles, CA 90018"",""CANDIDATE_FEAT_ID"":22,""CANDIDATE_FEAT_DESC"":""101 Fifth Ave, Los Angeles, CA 90018"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":69,""ADDITIONAL_SCORES"":{""FULL_SCORE"":69},""INBOUND_FEAT_ID"":21,""INBOUND_FEAT_DESC"":""15-MAR-1982"",""CANDIDATE_FEAT_ID"":48,""CANDIDATE_FEAT_DESC"":""17-DEC-1977"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"PASSENGERS","DEF456","{""RECORD_ID"":""DEF456"",""NAME_FIRST"":""Joann"",""NAME_LAST"":""Smith"",""MOBILE_PHONE_NUMBER"":""213-555-1212"",""HOME_PHONE_NUMBER"":""818-888-3939"",""ADDR_FULL"":""101 Fifth Ave, Los Angeles, CA 90018"",""DATE_OF_BIRTH"":""15-MAR-1982"",""DATA_SOURCE"":""PASSENGERS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SFF","Joann Smith"
      3,"John Parker",4,3,"POSSIBLY_RELATED","+PHONE-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""PHONE"",""FTYPE_CODE"":""PHONE"",""SCORE_BEHAVIOR"":""F1"",""SOURCE"":""PHONE"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":50,""INBOUND_FEAT_DESC"":""818-555-1313"",""INBOUND_FEAT_USAGE_TYPE"":""MOBILE"",""CANDIDATE_FEAT_ID"":50,""CANDIDATE_FEAT_DESC"":""818-555-1313"",""CANDIDATE_FEAT_USAGE_TYPE"":""MOBILE"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":65,""ADDITIONAL_SCORES"":{""FULL_SCORE"":65},""INBOUND_FEAT_ID"":64,""INBOUND_FEAT_DESC"":""23-MAY-1973"",""CANDIDATE_FEAT_ID"":48,""CANDIDATE_FEAT_DESC"":""17-DEC-1977"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"PASSENGERS","JKL012","{""RECORD_ID"":""JKL012"",""NAME_FIRST"":""Jane"",""NAME_LAST"":""Donaldson"",""MOBILE_PHONE_NUMBER"":""818-555-1313"",""HOME_PHONE_NUMBER"":""818-222-3131"",""ADDR_FULL"":""400 River Street, Pasadena, CA 90034"",""DATE_OF_BIRTH"":""23-MAY-1973"",""DATA_SOURCE"":""PASSENGERS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SF1","Jane Donaldson"
      4,"Jane Donaldson",0,0,"","","",0,0,"PASSENGERS","JKL012","{""RECORD_ID"":""JKL012"",""NAME_FIRST"":""Jane"",""NAME_LAST"":""Donaldson"",""MOBILE_PHONE_NUMBER"":""818-555-1313"",""HOME_PHONE_NUMBER"":""818-222-3131"",""ADDR_FULL"":""400 River Street, Pasadena, CA 90034"",""DATE_OF_BIRTH"":""23-MAY-1973"",""DATA_SOURCE"":""PASSENGERS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","",""
      4,"Jane Donaldson",3,3,"POSSIBLY_RELATED","+PHONE-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""PHONE"",""FTYPE_CODE"":""PHONE"",""SCORE_BEHAVIOR"":""F1"",""SOURCE"":""PHONE"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":50,""INBOUND_FEAT_DESC"":""818-555-1313"",""INBOUND_FEAT_USAGE_TYPE"":""MOBILE"",""CANDIDATE_FEAT_ID"":50,""CANDIDATE_FEAT_DESC"":""818-555-1313"",""CANDIDATE_FEAT_USAGE_TYPE"":""MOBILE"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":65,""ADDITIONAL_SCORES"":{""FULL_SCORE"":65},""INBOUND_FEAT_ID"":48,""INBOUND_FEAT_DESC"":""17-DEC-1977"",""CANDIDATE_FEAT_ID"":64,""CANDIDATE_FEAT_DESC"":""23-MAY-1973"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"PASSENGERS","GHI789","{""RECORD_ID"":""GHI789"",""NAME_FIRST"":""John"",""NAME_LAST"":""Parker"",""MOBILE_PHONE_NUMBER"":""818-555-1313"",""HOME_PHONE_NUMBER"":""818-999-2121"",""ADDR_FULL"":""101 Fifth Ave, Los Angeles, CA 90018"",""DATE_OF_BIRTH"":""17-DEC-1977"",""DATA_SOURCE"":""PASSENGERS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SF1","John Parker"
      4,"Jane Donaldson",10,3,"POSSIBLY_RELATED","+PNAME+ADDRESS-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""PNAME"",""FTYPE_CODE"":""NAME"",""SCORE_BEHAVIOR"":""NAME"",""SOURCE"":""/PART_NAME"",""SCORE"":84,""ADDITIONAL_SCORES"":{""GNR_FN"":84,""GNR_SN"":68,""GNR_GN"":100,""GENERATION_MATCH"":-1,""GNR_ON"":-1},""INBOUND_FEAT_ID"":195,""INBOUND_FEAT_DESC"":""Jane Johnson"",""CANDIDATE_FEAT_ID"":63,""CANDIDATE_FEAT_DESC"":""Jane Donaldson"",""SCORE_BUCKET"":""LIKELY""},{""TOKEN"":""ADDRESS"",""FTYPE_CODE"":""ADDRESS"",""SCORE_BEHAVIOR"":""FF"",""SOURCE"":""ADDRESS"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":65,""INBOUND_FEAT_DESC"":""400 River Street, Pasadena, CA 90034"",""CANDIDATE_FEAT_ID"":65,""CANDIDATE_FEAT_DESC"":""400 River Street, Pasadena, CA 90034"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":63,""ADDITIONAL_SCORES"":{""FULL_SCORE"":63},""INBOUND_FEAT_ID"":196,""INBOUND_FEAT_DESC"":""6-SEP-1975"",""CANDIDATE_FEAT_ID"":64,""CANDIDATE_FEAT_DESC"":""23-MAY-1973"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"VIPS","XYZ234","{""RECORD_ID"":""XYZ234"",""NAME_FIRST"":""Jane"",""NAME_LAST"":""Johnson"",""MOBILE_PHONE_NUMBER"":""818-333-7171"",""HOME_PHONE_NUMBER"":""818-123-9876"",""ADDR_FULL"":""400 River Street, Pasadena, CA 90034"",""DATE_OF_BIRTH"":""6-SEP-1975"",""DATA_SOURCE"":""VIPS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SFF","Jane Johnson"
      5,"Bill Bandley",0,0,"","","",0,0,"EMPLOYEES","MNO345","{""RECORD_ID"":""MNO345"",""NAME_FIRST"":""Bill"",""NAME_LAST"":""Bandley"",""MOBILE_PHONE_NUMBER"":""818-444-2121"",""HOME_PHONE_NUMBER"":""818-123-4567"",""ADDR_FULL"":""101 Main Street, Los Angeles, CA 90011"",""DATE_OF_BIRTH"":""22-AUG-1981"",""DATA_SOURCE"":""EMPLOYEES""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","",""
      5,"Bill Bandley",1,3,"POSSIBLY_RELATED","+ADDRESS-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""ADDRESS"",""FTYPE_CODE"":""ADDRESS"",""SCORE_BEHAVIOR"":""FF"",""SOURCE"":""ADDRESS"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":3,""INBOUND_FEAT_DESC"":""101 Main Street, Los Angeles, CA 90011"",""CANDIDATE_FEAT_ID"":3,""CANDIDATE_FEAT_DESC"":""101 Main Street, Los Angeles, CA 90011"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":82,""ADDITIONAL_SCORES"":{""FULL_SCORE"":82},""INBOUND_FEAT_ID"":2,""INBOUND_FEAT_DESC"":""12-JAN-1981"",""CANDIDATE_FEAT_ID"":81,""CANDIDATE_FEAT_DESC"":""22-AUG-1981"",""SCORE_BUCKET"":""UNLIKELY""}]}",0,0,"PASSENGERS","ABC123","{""RECORD_ID"":""ABC123"",""NAME_FIRST"":""Joseph"",""NAME_LAST"":""Schmidt"",""MOBILE_PHONE_NUMBER"":""213-555-1212"",""HOME_PHONE_NUMBER"":""818-777-2424"",""ADDR_FULL"":""101 Main Street, Los Angeles, CA 90011"",""DATE_OF_BIRTH"":""12-JAN-1981"",""DATA_SOURCE"":""PASSENGERS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SFF","Joseph Schmidt"
      5,"Bill Bandley",8,3,"POSSIBLY_RELATED","+PHONE-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""PHONE"",""FTYPE_CODE"":""PHONE"",""SCORE_BEHAVIOR"":""F1"",""SOURCE"":""PHONE"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":83,""INBOUND_FEAT_DESC"":""818-444-2121"",""INBOUND_FEAT_USAGE_TYPE"":""MOBILE"",""CANDIDATE_FEAT_ID"":83,""CANDIDATE_FEAT_DESC"":""818-444-2121"",""CANDIDATE_FEAT_USAGE_TYPE"":""MOBILE"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":79,""ADDITIONAL_SCORES"":{""FULL_SCORE"":79},""INBOUND_FEAT_ID"":160,""INBOUND_FEAT_DESC"":""27-JUN-1980"",""CANDIDATE_FEAT_ID"":81,""CANDIDATE_FEAT_DESC"":""22-AUG-1981"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"EMPLOYEES","DEF890","{""RECORD_ID"":""DEF890"",""NAME_FIRST"":""Katrina"",""NAME_LAST"":""Osmond"",""MOBILE_PHONE_NUMBER"":""818-444-2121"",""HOME_PHONE_NUMBER"":""818-111-2222"",""ADDR_FULL"":""707 Seventh Ave, Los Angeles, CA 90043"",""DATE_OF_BIRTH"":""27-JUN-1980"",""DATA_SOURCE"":""EMPLOYEES""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SF1","Katrina Osmond"
      6,"Craig Smith",0,0,"","","",0,0,"EMPLOYEES","PQR678","{""RECORD_ID"":""PQR678"",""NAME_FIRST"":""Craig"",""NAME_LAST"":""Smith"",""MOBILE_PHONE_NUMBER"":""818-555-1212"",""HOME_PHONE_NUMBER"":""818-888-3939"",""ADDR_FULL"":""451 Dover Street, Los Angeles, CA 90018"",""DATE_OF_BIRTH"":""17-OCT-1983"",""DATA_SOURCE"":""EMPLOYEES""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","",""
      6,"Craig Smith",2,3,"POSSIBLY_RELATED","+SURNAME+PHONE-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""SURNAME"",""FTYPE_CODE"":""NAME"",""SCORE_BEHAVIOR"":""NAME"",""SOURCE"":""/SUR_NAME"",""SCORE"":67,""ADDITIONAL_SCORES"":{""GNR_FN"":67,""GNR_SN"":100,""GNR_GN"":34,""GENERATION_MATCH"":-1,""GNR_ON"":-1},""INBOUND_FEAT_ID"":20,""INBOUND_FEAT_DESC"":""Joann Smith"",""CANDIDATE_FEAT_ID"":106,""CANDIDATE_FEAT_DESC"":""Craig Smith"",""SCORE_BUCKET"":""UNLIKELY""},{""TOKEN"":""PHONE"",""FTYPE_CODE"":""PHONE"",""SCORE_BEHAVIOR"":""FF"",""SOURCE"":""PHONE"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":23,""INBOUND_FEAT_DESC"":""818-888-3939"",""INBOUND_FEAT_USAGE_TYPE"":""HOME"",""CANDIDATE_FEAT_ID"":23,""CANDIDATE_FEAT_DESC"":""818-888-3939"",""CANDIDATE_FEAT_USAGE_TYPE"":""HOME"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":81,""ADDITIONAL_SCORES"":{""FULL_SCORE"":81},""INBOUND_FEAT_ID"":21,""INBOUND_FEAT_DESC"":""15-MAR-1982"",""CANDIDATE_FEAT_ID"":107,""CANDIDATE_FEAT_DESC"":""17-OCT-1983"",""SCORE_BUCKET"":""UNLIKELY""}]}",0,0,"PASSENGERS","DEF456","{""RECORD_ID"":""DEF456"",""NAME_FIRST"":""Joann"",""NAME_LAST"":""Smith"",""MOBILE_PHONE_NUMBER"":""213-555-1212"",""HOME_PHONE_NUMBER"":""818-888-3939"",""ADDR_FULL"":""101 Fifth Ave, Los Angeles, CA 90018"",""DATE_OF_BIRTH"":""15-MAR-1982"",""DATA_SOURCE"":""PASSENGERS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","CFF_SURNAME","Joann Smith"
      6,"Craig Smith",7,3,"POSSIBLY_RELATED","+ADDRESS-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""ADDRESS"",""FTYPE_CODE"":""ADDRESS"",""SCORE_BEHAVIOR"":""FF"",""SOURCE"":""ADDRESS"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":108,""INBOUND_FEAT_DESC"":""451 Dover Street, Los Angeles, CA 90018"",""CANDIDATE_FEAT_ID"":108,""CANDIDATE_FEAT_DESC"":""451 Dover Street, Los Angeles, CA 90018"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":63,""ADDITIONAL_SCORES"":{""FULL_SCORE"":63},""INBOUND_FEAT_ID"":134,""INBOUND_FEAT_DESC"":""24-NOV-1975"",""CANDIDATE_FEAT_ID"":107,""CANDIDATE_FEAT_DESC"":""17-OCT-1983"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"EMPLOYEES","ABC567","{""RECORD_ID"":""ABC567"",""NAME_FIRST"":""Kim"",""NAME_LAST"":""Long"",""MOBILE_PHONE_NUMBER"":""818-246-8024"",""HOME_PHONE_NUMBER"":""818-135-7913"",""ADDR_FULL"":""451 Dover Street, Los Angeles, CA 90018"",""DATE_OF_BIRTH"":""24-NOV-1975"",""DATA_SOURCE"":""EMPLOYEES""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SFF","Kim Long"
      7,"Kim Long",0,0,"","","",0,0,"EMPLOYEES","ABC567","{""RECORD_ID"":""ABC567"",""NAME_FIRST"":""Kim"",""NAME_LAST"":""Long"",""MOBILE_PHONE_NUMBER"":""818-246-8024"",""HOME_PHONE_NUMBER"":""818-135-7913"",""ADDR_FULL"":""451 Dover Street, Los Angeles, CA 90018"",""DATE_OF_BIRTH"":""24-NOV-1975"",""DATA_SOURCE"":""EMPLOYEES""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","",""
      7,"Kim Long",6,3,"POSSIBLY_RELATED","+ADDRESS-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""ADDRESS"",""FTYPE_CODE"":""ADDRESS"",""SCORE_BEHAVIOR"":""FF"",""SOURCE"":""ADDRESS"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":108,""INBOUND_FEAT_DESC"":""451 Dover Street, Los Angeles, CA 90018"",""CANDIDATE_FEAT_ID"":108,""CANDIDATE_FEAT_DESC"":""451 Dover Street, Los Angeles, CA 90018"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":63,""ADDITIONAL_SCORES"":{""FULL_SCORE"":63},""INBOUND_FEAT_ID"":107,""INBOUND_FEAT_DESC"":""17-OCT-1983"",""CANDIDATE_FEAT_ID"":134,""CANDIDATE_FEAT_DESC"":""24-NOV-1975"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"EMPLOYEES","PQR678","{""RECORD_ID"":""PQR678"",""NAME_FIRST"":""Craig"",""NAME_LAST"":""Smith"",""MOBILE_PHONE_NUMBER"":""818-555-1212"",""HOME_PHONE_NUMBER"":""818-888-3939"",""ADDR_FULL"":""451 Dover Street, Los Angeles, CA 90018"",""DATE_OF_BIRTH"":""17-OCT-1983"",""DATA_SOURCE"":""EMPLOYEES""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SFF","Craig Smith"
      8,"Katrina Osmond",0,0,"","","",0,0,"EMPLOYEES","DEF890","{""RECORD_ID"":""DEF890"",""NAME_FIRST"":""Katrina"",""NAME_LAST"":""Osmond"",""MOBILE_PHONE_NUMBER"":""818-444-2121"",""HOME_PHONE_NUMBER"":""818-111-2222"",""ADDR_FULL"":""707 Seventh Ave, Los Angeles, CA 90043"",""DATE_OF_BIRTH"":""27-JUN-1980"",""DATA_SOURCE"":""EMPLOYEES""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","",""
      8,"Katrina Osmond",5,3,"POSSIBLY_RELATED","+PHONE-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""PHONE"",""FTYPE_CODE"":""PHONE"",""SCORE_BEHAVIOR"":""F1"",""SOURCE"":""PHONE"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":83,""INBOUND_FEAT_DESC"":""818-444-2121"",""INBOUND_FEAT_USAGE_TYPE"":""MOBILE"",""CANDIDATE_FEAT_ID"":83,""CANDIDATE_FEAT_DESC"":""818-444-2121"",""CANDIDATE_FEAT_USAGE_TYPE"":""MOBILE"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":79,""ADDITIONAL_SCORES"":{""FULL_SCORE"":79},""INBOUND_FEAT_ID"":81,""INBOUND_FEAT_DESC"":""22-AUG-1981"",""CANDIDATE_FEAT_ID"":160,""CANDIDATE_FEAT_DESC"":""27-JUN-1980"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"EMPLOYEES","MNO345","{""RECORD_ID"":""MNO345"",""NAME_FIRST"":""Bill"",""NAME_LAST"":""Bandley"",""MOBILE_PHONE_NUMBER"":""818-444-2121"",""HOME_PHONE_NUMBER"":""818-123-4567"",""ADDR_FULL"":""101 Main Street, Los Angeles, CA 90011"",""DATE_OF_BIRTH"":""22-AUG-1981"",""DATA_SOURCE"":""EMPLOYEES""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SF1","Bill Bandley"
      8,"Katrina Osmond",12,3,"POSSIBLY_RELATED","+ADDRESS-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""ADDRESS"",""FTYPE_CODE"":""ADDRESS"",""SCORE_BEHAVIOR"":""FF"",""SOURCE"":""ADDRESS"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":161,""INBOUND_FEAT_DESC"":""707 Seventh Ave, Los Angeles, CA 90043"",""CANDIDATE_FEAT_ID"":161,""CANDIDATE_FEAT_DESC"":""707 Seventh Ave, Los Angeles, CA 90043"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":70,""ADDITIONAL_SCORES"":{""FULL_SCORE"":70},""INBOUND_FEAT_ID"":236,""INBOUND_FEAT_DESC"":""15-JAN-1979"",""CANDIDATE_FEAT_ID"":160,""CANDIDATE_FEAT_DESC"":""27-JUN-1980"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"VIPS","JKL456","{""RECORD_ID"":""JKL456"",""NAME_FIRST"":""Kelly"",""NAME_LAST"":""Rogers"",""MOBILE_PHONE_NUMBER"":""818-333-7171"",""HOME_PHONE_NUMBER"":""818-789-6543"",""ADDR_FULL"":""707 Seventh Ave, Los Angeles, CA 90043"",""DATE_OF_BIRTH"":""15-JAN-1979"",""DATA_SOURCE"":""VIPS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SFF","Kelly Rogers"
      9,"Martha Wayne",0,0,"","","",0,0,"VIPS","STU901","{""RECORD_ID"":""STU901"",""NAME_FIRST"":""Martha"",""NAME_LAST"":""Wayne"",""MOBILE_PHONE_NUMBER"":""818-891-9292"",""HOME_PHONE_NUMBER"":""818-987-1234"",""ADDR_FULL"":""888 Sepulveda Blvd, Los Angeles, CA 90034"",""DATE_OF_BIRTH"":""27-NOV-1973"",""DATA_SOURCE"":""VIPS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","",""
      9,"Martha Wayne",11,3,"POSSIBLY_RELATED","+PNAME+ADDRESS-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""PNAME"",""FTYPE_CODE"":""NAME"",""SCORE_BEHAVIOR"":""NAME"",""SOURCE"":""/PART_NAME"",""SCORE"":68,""ADDITIONAL_SCORES"":{""GNR_FN"":68,""GNR_SN"":34,""GNR_GN"":100,""GENERATION_MATCH"":-1,""GNR_ON"":-1},""INBOUND_FEAT_ID"":221,""INBOUND_FEAT_DESC"":""Martha Kent"",""CANDIDATE_FEAT_ID"":176,""CANDIDATE_FEAT_DESC"":""Martha Wayne"",""SCORE_BUCKET"":""UNLIKELY""},{""TOKEN"":""ADDRESS"",""FTYPE_CODE"":""ADDRESS"",""SCORE_BEHAVIOR"":""FF"",""SOURCE"":""ADDRESS"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":178,""INBOUND_FEAT_DESC"":""888 Sepulveda Blvd, Los Angeles, CA 90034"",""CANDIDATE_FEAT_ID"":178,""CANDIDATE_FEAT_DESC"":""888 Sepulveda Blvd, Los Angeles, CA 90034"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":67,""ADDITIONAL_SCORES"":{""FULL_SCORE"":67},""INBOUND_FEAT_ID"":222,""INBOUND_FEAT_DESC"":""17-AUG-1978"",""CANDIDATE_FEAT_ID"":177,""CANDIDATE_FEAT_DESC"":""27-NOV-1973"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"VIPS","GHI123","{""RECORD_ID"":""GHI123"",""NAME_FIRST"":""Martha"",""NAME_LAST"":""Kent"",""MOBILE_PHONE_NUMBER"":""818-333-5757"",""HOME_PHONE_NUMBER"":""818-123-9876"",""ADDR_FULL"":""888 Sepulveda Blvd, Los Angeles, CA 90034"",""DATE_OF_BIRTH"":""17-AUG-1978"",""DATA_SOURCE"":""VIPS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SFF","Martha Kent"
      10,"Jane Johnson",0,0,"","","",0,0,"VIPS","XYZ234","{""RECORD_ID"":""XYZ234"",""NAME_FIRST"":""Jane"",""NAME_LAST"":""Johnson"",""MOBILE_PHONE_NUMBER"":""818-333-7171"",""HOME_PHONE_NUMBER"":""818-123-9876"",""ADDR_FULL"":""400 River Street, Pasadena, CA 90034"",""DATE_OF_BIRTH"":""6-SEP-1975"",""DATA_SOURCE"":""VIPS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","",""
      10,"Jane Johnson",4,3,"POSSIBLY_RELATED","+PNAME+ADDRESS-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""PNAME"",""FTYPE_CODE"":""NAME"",""SCORE_BEHAVIOR"":""NAME"",""SOURCE"":""/PART_NAME"",""SCORE"":84,""ADDITIONAL_SCORES"":{""GNR_FN"":84,""GNR_SN"":68,""GNR_GN"":100,""GENERATION_MATCH"":-1,""GNR_ON"":-1},""INBOUND_FEAT_ID"":63,""INBOUND_FEAT_DESC"":""Jane Donaldson"",""CANDIDATE_FEAT_ID"":195,""CANDIDATE_FEAT_DESC"":""Jane Johnson"",""SCORE_BUCKET"":""LIKELY""},{""TOKEN"":""ADDRESS"",""FTYPE_CODE"":""ADDRESS"",""SCORE_BEHAVIOR"":""FF"",""SOURCE"":""ADDRESS"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":65,""INBOUND_FEAT_DESC"":""400 River Street, Pasadena, CA 90034"",""CANDIDATE_FEAT_ID"":65,""CANDIDATE_FEAT_DESC"":""400 River Street, Pasadena, CA 90034"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":63,""ADDITIONAL_SCORES"":{""FULL_SCORE"":63},""INBOUND_FEAT_ID"":64,""INBOUND_FEAT_DESC"":""23-MAY-1973"",""CANDIDATE_FEAT_ID"":196,""CANDIDATE_FEAT_DESC"":""6-SEP-1975"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"PASSENGERS","JKL012","{""RECORD_ID"":""JKL012"",""NAME_FIRST"":""Jane"",""NAME_LAST"":""Donaldson"",""MOBILE_PHONE_NUMBER"":""818-555-1313"",""HOME_PHONE_NUMBER"":""818-222-3131"",""ADDR_FULL"":""400 River Street, Pasadena, CA 90034"",""DATE_OF_BIRTH"":""23-MAY-1973"",""DATA_SOURCE"":""PASSENGERS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SFF","Jane Donaldson"
      10,"Jane Johnson",11,3,"POSSIBLY_RELATED","+PHONE-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""PHONE"",""FTYPE_CODE"":""PHONE"",""SCORE_BEHAVIOR"":""FF"",""SOURCE"":""PHONE"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":197,""INBOUND_FEAT_DESC"":""818-123-9876"",""INBOUND_FEAT_USAGE_TYPE"":""HOME"",""CANDIDATE_FEAT_ID"":197,""CANDIDATE_FEAT_DESC"":""818-123-9876"",""CANDIDATE_FEAT_USAGE_TYPE"":""HOME"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":67,""ADDITIONAL_SCORES"":{""FULL_SCORE"":67},""INBOUND_FEAT_ID"":222,""INBOUND_FEAT_DESC"":""17-AUG-1978"",""CANDIDATE_FEAT_ID"":196,""CANDIDATE_FEAT_DESC"":""6-SEP-1975"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"VIPS","GHI123","{""RECORD_ID"":""GHI123"",""NAME_FIRST"":""Martha"",""NAME_LAST"":""Kent"",""MOBILE_PHONE_NUMBER"":""818-333-5757"",""HOME_PHONE_NUMBER"":""818-123-9876"",""ADDR_FULL"":""888 Sepulveda Blvd, Los Angeles, CA 90034"",""DATE_OF_BIRTH"":""17-AUG-1978"",""DATA_SOURCE"":""VIPS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SFF","Martha Kent"
      10,"Jane Johnson",12,3,"POSSIBLY_RELATED","+PHONE-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""PHONE"",""FTYPE_CODE"":""PHONE"",""SCORE_BEHAVIOR"":""F1"",""SOURCE"":""PHONE"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":198,""INBOUND_FEAT_DESC"":""818-333-7171"",""INBOUND_FEAT_USAGE_TYPE"":""MOBILE"",""CANDIDATE_FEAT_ID"":198,""CANDIDATE_FEAT_DESC"":""818-333-7171"",""CANDIDATE_FEAT_USAGE_TYPE"":""MOBILE"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":76,""ADDITIONAL_SCORES"":{""FULL_SCORE"":76},""INBOUND_FEAT_ID"":236,""INBOUND_FEAT_DESC"":""15-JAN-1979"",""CANDIDATE_FEAT_ID"":196,""CANDIDATE_FEAT_DESC"":""6-SEP-1975"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"VIPS","JKL456","{""RECORD_ID"":""JKL456"",""NAME_FIRST"":""Kelly"",""NAME_LAST"":""Rogers"",""MOBILE_PHONE_NUMBER"":""818-333-7171"",""HOME_PHONE_NUMBER"":""818-789-6543"",""ADDR_FULL"":""707 Seventh Ave, Los Angeles, CA 90043"",""DATE_OF_BIRTH"":""15-JAN-1979"",""DATA_SOURCE"":""VIPS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SF1","Kelly Rogers"
      11,"Martha Kent",0,0,"","","",0,0,"VIPS","GHI123","{""RECORD_ID"":""GHI123"",""NAME_FIRST"":""Martha"",""NAME_LAST"":""Kent"",""MOBILE_PHONE_NUMBER"":""818-333-5757"",""HOME_PHONE_NUMBER"":""818-123-9876"",""ADDR_FULL"":""888 Sepulveda Blvd, Los Angeles, CA 90034"",""DATE_OF_BIRTH"":""17-AUG-1978"",""DATA_SOURCE"":""VIPS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","",""
      11,"Martha Kent",9,3,"POSSIBLY_RELATED","+PNAME+ADDRESS-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""PNAME"",""FTYPE_CODE"":""NAME"",""SCORE_BEHAVIOR"":""NAME"",""SOURCE"":""/PART_NAME"",""SCORE"":68,""ADDITIONAL_SCORES"":{""GNR_FN"":68,""GNR_SN"":34,""GNR_GN"":100,""GENERATION_MATCH"":-1,""GNR_ON"":-1},""INBOUND_FEAT_ID"":176,""INBOUND_FEAT_DESC"":""Martha Wayne"",""CANDIDATE_FEAT_ID"":221,""CANDIDATE_FEAT_DESC"":""Martha Kent"",""SCORE_BUCKET"":""UNLIKELY""},{""TOKEN"":""ADDRESS"",""FTYPE_CODE"":""ADDRESS"",""SCORE_BEHAVIOR"":""FF"",""SOURCE"":""ADDRESS"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":178,""INBOUND_FEAT_DESC"":""888 Sepulveda Blvd, Los Angeles, CA 90034"",""CANDIDATE_FEAT_ID"":178,""CANDIDATE_FEAT_DESC"":""888 Sepulveda Blvd, Los Angeles, CA 90034"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":67,""ADDITIONAL_SCORES"":{""FULL_SCORE"":67},""INBOUND_FEAT_ID"":177,""INBOUND_FEAT_DESC"":""27-NOV-1973"",""CANDIDATE_FEAT_ID"":222,""CANDIDATE_FEAT_DESC"":""17-AUG-1978"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"VIPS","STU901","{""RECORD_ID"":""STU901"",""NAME_FIRST"":""Martha"",""NAME_LAST"":""Wayne"",""MOBILE_PHONE_NUMBER"":""818-891-9292"",""HOME_PHONE_NUMBER"":""818-987-1234"",""ADDR_FULL"":""888 Sepulveda Blvd, Los Angeles, CA 90034"",""DATE_OF_BIRTH"":""27-NOV-1973"",""DATA_SOURCE"":""VIPS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SFF","Martha Wayne"
      11,"Martha Kent",10,3,"POSSIBLY_RELATED","+PHONE-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""PHONE"",""FTYPE_CODE"":""PHONE"",""SCORE_BEHAVIOR"":""FF"",""SOURCE"":""PHONE"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":197,""INBOUND_FEAT_DESC"":""818-123-9876"",""INBOUND_FEAT_USAGE_TYPE"":""HOME"",""CANDIDATE_FEAT_ID"":197,""CANDIDATE_FEAT_DESC"":""818-123-9876"",""CANDIDATE_FEAT_USAGE_TYPE"":""HOME"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":67,""ADDITIONAL_SCORES"":{""FULL_SCORE"":67},""INBOUND_FEAT_ID"":196,""INBOUND_FEAT_DESC"":""6-SEP-1975"",""CANDIDATE_FEAT_ID"":222,""CANDIDATE_FEAT_DESC"":""17-AUG-1978"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"VIPS","XYZ234","{""RECORD_ID"":""XYZ234"",""NAME_FIRST"":""Jane"",""NAME_LAST"":""Johnson"",""MOBILE_PHONE_NUMBER"":""818-333-7171"",""HOME_PHONE_NUMBER"":""818-123-9876"",""ADDR_FULL"":""400 River Street, Pasadena, CA 90034"",""DATE_OF_BIRTH"":""6-SEP-1975"",""DATA_SOURCE"":""VIPS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SFF","Jane Johnson"
      12,"Kelly Rogers",0,0,"","","",0,0,"VIPS","JKL456","{""RECORD_ID"":""JKL456"",""NAME_FIRST"":""Kelly"",""NAME_LAST"":""Rogers"",""MOBILE_PHONE_NUMBER"":""818-333-7171"",""HOME_PHONE_NUMBER"":""818-789-6543"",""ADDR_FULL"":""707 Seventh Ave, Los Angeles, CA 90043"",""DATE_OF_BIRTH"":""15-JAN-1979"",""DATA_SOURCE"":""VIPS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","",""
      12,"Kelly Rogers",8,3,"POSSIBLY_RELATED","+ADDRESS-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""ADDRESS"",""FTYPE_CODE"":""ADDRESS"",""SCORE_BEHAVIOR"":""FF"",""SOURCE"":""ADDRESS"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":161,""INBOUND_FEAT_DESC"":""707 Seventh Ave, Los Angeles, CA 90043"",""CANDIDATE_FEAT_ID"":161,""CANDIDATE_FEAT_DESC"":""707 Seventh Ave, Los Angeles, CA 90043"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":70,""ADDITIONAL_SCORES"":{""FULL_SCORE"":70},""INBOUND_FEAT_ID"":160,""INBOUND_FEAT_DESC"":""27-JUN-1980"",""CANDIDATE_FEAT_ID"":236,""CANDIDATE_FEAT_DESC"":""15-JAN-1979"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"EMPLOYEES","DEF890","{""RECORD_ID"":""DEF890"",""NAME_FIRST"":""Katrina"",""NAME_LAST"":""Osmond"",""MOBILE_PHONE_NUMBER"":""818-444-2121"",""HOME_PHONE_NUMBER"":""818-111-2222"",""ADDR_FULL"":""707 Seventh Ave, Los Angeles, CA 90043"",""DATE_OF_BIRTH"":""27-JUN-1980"",""DATA_SOURCE"":""EMPLOYEES""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SFF","Katrina Osmond"
      12,"Kelly Rogers",10,3,"POSSIBLY_RELATED","+PHONE-DOB","{""CONFIRMATIONS"":[{""TOKEN"":""PHONE"",""FTYPE_CODE"":""PHONE"",""SCORE_BEHAVIOR"":""F1"",""SOURCE"":""PHONE"",""SCORE"":100,""ADDITIONAL_SCORES"":{""FULL_SCORE"":100},""INBOUND_FEAT_ID"":198,""INBOUND_FEAT_DESC"":""818-333-7171"",""INBOUND_FEAT_USAGE_TYPE"":""MOBILE"",""CANDIDATE_FEAT_ID"":198,""CANDIDATE_FEAT_DESC"":""818-333-7171"",""CANDIDATE_FEAT_USAGE_TYPE"":""MOBILE"",""SCORE_BUCKET"":""SAME""}],""DENIALS"":[{""TOKEN"":""DOB"",""FTYPE_CODE"":""DOB"",""SCORE_BEHAVIOR"":""FMES"",""SOURCE"":""DOB"",""SCORE"":76,""ADDITIONAL_SCORES"":{""FULL_SCORE"":76},""INBOUND_FEAT_ID"":196,""INBOUND_FEAT_DESC"":""6-SEP-1975"",""CANDIDATE_FEAT_ID"":236,""CANDIDATE_FEAT_DESC"":""15-JAN-1979"",""SCORE_BUCKET"":""NO_CHANCE""}]}",0,0,"VIPS","XYZ234","{""RECORD_ID"":""XYZ234"",""NAME_FIRST"":""Jane"",""NAME_LAST"":""Johnson"",""MOBILE_PHONE_NUMBER"":""818-333-7171"",""HOME_PHONE_NUMBER"":""818-123-9876"",""ADDR_FULL"":""400 River Street, Pasadena, CA 90034"",""DATE_OF_BIRTH"":""6-SEP-1975"",""DATA_SOURCE"":""VIPS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SF1","Jane Johnson"
      100002,"Joseph W Schmoe",0,0,"","","",0,0,"TEST","ABC123","{""DATA_SOURCE"":""TEST"",""RECORD_ID"":""ABC123"",""NAME_FULL"":""Joe Schmoe"",""PHONE_NUMBER"":""702-555-1212"",""EMAIL_ADDRESS"":""joeschmoe@nowhere.com""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","",""
      100002,"Joseph W Schmoe",0,1,"RESOLVED","+NAME+EMAIL","",0,0,"TEST","XYZ987","{""DATA_SOURCE"":""TEST"",""RECORD_ID"":""XYZ987"",""NAME_FULL"":""Joseph Schmoe"",""WORK_PHONE_NUMBER"":""702-555-1313"",""ADDR_FULL"":""101 Main St.; Las Vegas, NV 89101"",""EMAIL_ADDRESS"":""joeschmoe@nowhere.com""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","SF1_CNAME",""
      100002,"Joseph W Schmoe",0,1,"RESOLVED","+NAME+ADDRESS+PHONE","",0,0,"TEST","ZYX789","{""DATA_SOURCE"":""TEST"",""RECORD_ID"":""ZYX789"",""NAME_FULL"":""Joseph W. Schmoe"",""HOME_PHONE_NUMBER"":""702-555-1212"",""WORK_PHONE_NUMBER"":""702-555-1313"",""ADDR_FULL"":""101 Main St.; Las Vegas, NV 89101""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","MFF_CNAME",""
      

      Parameters:
      csvColumnList - Specify "*" to indicate "all columns", specify empty-string to indicate the "standard columns", otherwise specify a comma-separated list of column names.
      Returns:
      The export handle to use for retrieving the export data.
      Throws:
      SzException - If a failure occurs.
      See Also:
    • fetchNext

      String fetchNext(long exportHandle) throws SzException
      Fetches the next line of entity data from an open export report.

      Used in conjunction with exportJsonEntityReport(Set), exportCsvEntityReport(String, Set) and closeExportReport(long).

      If the export handle was obtained from exportCsvEntityReport(String, Set) this returns the CSV header on the first call and exported entity data in CSV format on subsequent calls.

      When null is returned, the export report is complete and the caller should invoke closeExportReport(long) to free resources.

      Usage (JSON export):

      // How to export entity data in JSON format
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // export the JSON data
          long exportHandle = engine.exportJsonEntityReport(SZ_EXPORT_DEFAULT_FLAGS);
      
          // read the data
          try {
              // fetch the first JSON record
              String jsonData = engine.fetchNext(exportHandle);
              while (jsonData != null) {
                  // parse the JSON data
                  JsonObject jsonObject = Json.createReader(new StringReader(jsonData)).readObject();
      
                  // do something with the parsed data (varies by application)
                  processJsonRecord(jsonObject);
      
                  // fetch the next JSON record
                  jsonData = engine.fetchNext(exportHandle);
              }
      
          } finally {
              // close the export report handle
              engine.closeExportReport(exportHandle);
          }
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to perform JSON export.", e);
      }
      

      Example JSON Line Result:

      {"RESOLVED_ENTITY":{"ENTITY_ID":1,"ENTITY_NAME":"Joseph Schmidt","FEATURES":{"ADDRESS":[{"FEAT_DESC":"101 Main Street, Los Angeles, CA 90011","LIB_FEAT_ID":3,"FEAT_DESC_VALUES":[{"FEAT_DESC":"101 Main Street, Los Angeles, CA 90011","LIB_FEAT_ID":3}]}],"DOB":[{"FEAT_DESC":"12-JAN-1981","LIB_FEAT_ID":2,"FEAT_DESC_VALUES":[{"FEAT_DESC":"12-JAN-1981","LIB_FEAT_ID":2}]}],"NAME":[{"FEAT_DESC":"Joseph Schmidt","LIB_FEAT_ID":1,"FEAT_DESC_VALUES":[{"FEAT_DESC":"Joseph Schmidt","LIB_FEAT_ID":1}]}],"PHONE":[{"FEAT_DESC":"818-777-2424","LIB_FEAT_ID":4,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"818-777-2424","LIB_FEAT_ID":4}]},{"FEAT_DESC":"213-555-1212","LIB_FEAT_ID":5,"USAGE_TYPE":"MOBILE","FEAT_DESC_VALUES":[{"FEAT_DESC":"213-555-1212","LIB_FEAT_ID":5}]}]},"RECORD_SUMMARY":[{"DATA_SOURCE":"PASSENGERS","RECORD_COUNT":1}],"RECORDS":[{"DATA_SOURCE":"PASSENGERS","RECORD_ID":"ABC123","INTERNAL_ID":1,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":""}]},"RELATED_ENTITIES":[{"ENTITY_ID":2,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+PHONE-DOB","ERRULE_CODE":"SF1","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Joann Smith","RECORD_SUMMARY":[{"DATA_SOURCE":"PASSENGERS","RECORD_COUNT":1}]},{"ENTITY_ID":5,"MATCH_LEVEL_CODE":"POSSIBLY_RELATED","MATCH_KEY":"+ADDRESS-DOB","ERRULE_CODE":"SFF","IS_DISCLOSED":0,"IS_AMBIGUOUS":0,"ENTITY_NAME":"Bill Bandley","RECORD_SUMMARY":[{"DATA_SOURCE":"EMPLOYEES","RECORD_COUNT":1}]}]}

      Usage (CSV export):

      // How to export entity data in CSV format
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // export the JSON data
          long exportHandle = engine.exportCsvEntityReport("*", SZ_EXPORT_DEFAULT_FLAGS);
      
          // read the data
          try {
              // fetch the CSV header line from the exported data
              String csvHeaders = engine.fetchNext(exportHandle);
      
              // process the CSV headers (varies by application)
              processCsvHeaders(csvHeaders);
      
              // fetch the first CSV record from the exported data
              String csvRecord = engine.fetchNext(exportHandle);
      
              while (csvRecord != null) {
                  // do something with the exported record (varies by application)
                  processCsvRecord(csvRecord);
      
                  // fetch the next exported CSV record
                  csvRecord = engine.fetchNext(exportHandle);
              }
      
          } finally {
              // close the export report handle
              engine.closeExportReport(exportHandle);
          }
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to perform CSV export.", e);
      }
      

      Example CSV Header Result:

      RESOLVED_ENTITY_ID,RESOLVED_ENTITY_NAME,RELATED_ENTITY_ID,MATCH_LEVEL,MATCH_LEVEL_CODE,MATCH_KEY,MATCH_KEY_DETAILS,IS_DISCLOSED,IS_AMBIGUOUS,DATA_SOURCE,RECORD_ID,JSON_DATA,FIRST_SEEN_DT,LAST_SEEN_DT,UNMAPPED_DATA,ERRULE_CODE,RELATED_ENTITY_NAME

      Example CSV Data Result:

      1,"Joseph Schmidt",0,0,"","","",0,0,"PASSENGERS","ABC123","{""RECORD_ID"":""ABC123"",""NAME_FIRST"":""Joseph"",""NAME_LAST"":""Schmidt"",""MOBILE_PHONE_NUMBER"":""213-555-1212"",""HOME_PHONE_NUMBER"":""818-777-2424"",""ADDR_FULL"":""101 Main Street, Los Angeles, CA 90011"",""DATE_OF_BIRTH"":""12-JAN-1981"",""DATA_SOURCE"":""PASSENGERS""}","2025-08-11T18:41:46Z","2025-08-11T18:41:46Z","{}","",""

      Parameters:
      exportHandle - The export handle for the export report from which to retrieve the next line of data.
      Returns:
      The next line of export data whose format depends on which function was used to initiate the export, or null if there is no more data to be exported via the specified handle.
      Throws:
      SzException - If the specified export handle has already been closed or if any other failure occurs.
      See Also:
    • closeExportReport

      void closeExportReport(long exportHandle) throws SzException
      Closes an export report.

      Used in conjunction with exportJsonEntityReport(Set), exportCsvEntityReport(String, Set) and fetchNext(long).

      Usage (JSON export):

      // How to export entity data in JSON format
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // export the JSON data
          long exportHandle = engine.exportJsonEntityReport(SZ_EXPORT_DEFAULT_FLAGS);
      
          // read the data
          try {
              // fetch the first JSON record
              String jsonData = engine.fetchNext(exportHandle);
              while (jsonData != null) {
                  // parse the JSON data
                  JsonObject jsonObject = Json.createReader(new StringReader(jsonData)).readObject();
      
                  // do something with the parsed data (varies by application)
                  processJsonRecord(jsonObject);
      
                  // fetch the next JSON record
                  jsonData = engine.fetchNext(exportHandle);
              }
      
          } finally {
              // close the export report handle
              engine.closeExportReport(exportHandle);
          }
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to perform JSON export.", e);
      }
      

      Usage (CSV export):

      // How to export entity data in CSV format
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // export the JSON data
          long exportHandle = engine.exportCsvEntityReport("*", SZ_EXPORT_DEFAULT_FLAGS);
      
          // read the data
          try {
              // fetch the CSV header line from the exported data
              String csvHeaders = engine.fetchNext(exportHandle);
      
              // process the CSV headers (varies by application)
              processCsvHeaders(csvHeaders);
      
              // fetch the first CSV record from the exported data
              String csvRecord = engine.fetchNext(exportHandle);
      
              while (csvRecord != null) {
                  // do something with the exported record (varies by application)
                  processCsvRecord(csvRecord);
      
                  // fetch the next exported CSV record
                  csvRecord = engine.fetchNext(exportHandle);
              }
      
          } finally {
              // close the export report handle
              engine.closeExportReport(exportHandle);
          }
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to perform CSV export.", e);
      }
      

      Parameters:
      exportHandle - The export handle of the export report to close.
      Throws:
      SzException - If the specified export handle has already been closed or if any other failure occurs.
      See Also:
    • processRedoRecord

      String processRedoRecord(String redoRecord, Set<SzFlag> flags) throws SzException
      Processes the provided redo record.

      This operation performs entity resolution. Calling this method has the potential to create more redo records in certain situations.

      This method is used in conjunction with getRedoRecord() and countRedoRecords().

      The optionally specified Set of SzFlag instances that not only control how the operation is performed but also the level of detail provided for the entity and record being analyzed. The Set may contain any SzFlag value, but only flags belonging to the SzFlagUsageGroup.SZ_REDO_FLAGS group are guaranteed to be recognized (other SzFlag instances will be ignored unless they have equivalent bit flags).

      NOTE: EnumSet offers an efficient means of constructing a Set of SzFlag.

      Usage:

      // How to check for and process redo records
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get the redo count
          long redoCount = engine.countRedoRecords();
      
          // check if we have redo records
          if (redoCount > 0L) {
      
              // get the next redo record
              String redoRecord = engine.getRedoRecord();
      
              // loop while we still have redo records
              while (redoRecord != null) {
                  try {
                      // process the redo record
                      String info = engine.processRedoRecord(redoRecord, SZ_WITH_INFO_FLAGS);
      
                      // do something with the "info JSON" (varies by application)
                      JsonObject jsonObject = Json.createReader(new StringReader(info)).readObject();
                      if (jsonObject.containsKey("AFFECTED_ENTITIES")) {
                          JsonArray affectedArr = jsonObject.getJsonArray("AFFECTED_ENTITIES");
                          for (JsonObject affected : affectedArr.getValuesAs(JsonObject.class)) {
                              long affectedId = affected.getJsonNumber("ENTITY_ID").longValue();
      
                              ...
                          }
                      }
      
                  } catch (SzException e) {
                      // handle or rethrow the other exceptions
                      logError("Failed to process redo record: " + redoRecord, e);
                  }
      
                  // get the next redo record
                  redoRecord = engine.getRedoRecord();
              }
          }
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to process redos.", e);
      }
      

      Example Info Result: (formatted for readability)

      {
          "DATA_SOURCE": "TEST",
          "RECORD_ID": "ABC123",
          "AFFECTED_ENTITIES": [
              {
                  "ENTITY_ID": 100002
              }
          ]
      }

      Parameters:
      redoRecord - The redo record to be processed.
      flags - The optional Set of SzFlag instances belonging to the SzFlagUsageGroup.SZ_REDO_FLAGS group to control how the operation is performed and the content of the response, or null to default to SzFlag.SZ_NO_FLAGS or SzFlag.SZ_WITH_INFO_FLAGS for an INFO response. SzFlag.SZ_REDO_DEFAULT_FLAGS is also available if you desire to use the recommended defaults.
      Returns:
      The JSON String result produced by processing the redo record in the repository, or null if the specified flags do not indicate that an INFO message should be returned.
      Throws:
      SzException - If a failure occurs.
      See Also:
    • processRedoRecord

      default String processRedoRecord(String redoRecord) throws SzException
      Convenience method for calling processRedoRecord(String, Set) using SzFlag.SZ_REDO_DEFAULT_FLAGS as the value for the flags parameter.

      NOTE: The String return type is still used despite the fact that in the current version this will always return null due to SzFlag.SZ_REDO_DEFAULT_FLAGS being equivalent to SzFlag.SZ_NO_FLAGS. However, having a void return type would cause incompatibilities if a future release introduced a different value for SzFlag.SZ_REDO_DEFAULT_FLAGS that did trigger a non-null return value.

      Usage:

      // How to check for and process redo records
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get the redo count
          long redoCount = engine.countRedoRecords();
      
          // check if we have redo records
          if (redoCount > 0L) {
      
              // get the next redo record
              String redoRecord = engine.getRedoRecord();
      
              // loop while we still have redo records
              while (redoRecord != null) {
                  try {
                      // process the redo record
                      engine.processRedoRecord(redoRecord);
      
                  } catch (SzException e) {
                      // handle or rethrow the other exceptions
                      logError("Failed to process redo record: " + redoRecord, e);
                  }
      
                  // get the next redo record
                  redoRecord = engine.getRedoRecord();
              }
          }
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to process redos.", e);
      }
      

      Parameters:
      redoRecord - The redo record to be processed.
      Returns:
      The JSON String result produced by processing the redo record in the repository, which will always be null in the current version (see above).
      Throws:
      SzException - If a failure occurs.
      See Also:
    • getRedoRecord

      String getRedoRecord() throws SzException
      Retrieves and removes a pending redo record.

      A null value will be returned if there are no pending redo records. Use processRedoRecord(String, Set) to process the result of this method. Once Once a redo record is retrieved, it is no longer tracked by Senzing. The redo record may be stored externally for later processing.

      This method is used in conjunction with processRedoRecord(String, Set) and countRedoRecords().

      Usage:

      // How to check for and process redo records
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get the redo count
          long redoCount = engine.countRedoRecords();
      
          // check if we have redo records
          if (redoCount > 0L) {
      
              // get the next redo record
              String redoRecord = engine.getRedoRecord();
      
              // loop while we still have redo records
              while (redoRecord != null) {
                  try {
                      // process the redo record
                      String info = engine.processRedoRecord(redoRecord, SZ_WITH_INFO_FLAGS);
      
                      // do something with the "info JSON" (varies by application)
                      JsonObject jsonObject = Json.createReader(new StringReader(info)).readObject();
                      if (jsonObject.containsKey("AFFECTED_ENTITIES")) {
                          JsonArray affectedArr = jsonObject.getJsonArray("AFFECTED_ENTITIES");
                          for (JsonObject affected : affectedArr.getValuesAs(JsonObject.class)) {
                              long affectedId = affected.getJsonNumber("ENTITY_ID").longValue();
      
                              ...
                          }
                      }
      
                  } catch (SzException e) {
                      // handle or rethrow the other exceptions
                      logError("Failed to process redo record: " + redoRecord, e);
                  }
      
                  // get the next redo record
                  redoRecord = engine.getRedoRecord();
              }
          }
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to process redos.", e);
      }
      

      Returns:
      The retrieved redo record or null if there were no pending redo records.
      Throws:
      SzException - If a failure occurs.
      See Also:
    • countRedoRecords

      long countRedoRecords() throws SzException
      Gets the number of redo records pending processing.

      This method is used in conjunction with getRedoRecord() and processRedoRecord(String, Set).

      Usage:

      // How to check for and process redo records
      try {
          // obtain the SzEnvironment (varies by application)
          SzEnvironment env = getEnvironment();
      
          // get the engine
          SzEngine engine = env.getEngine();
      
          // get the redo count
          long redoCount = engine.countRedoRecords();
      
          // check if we have redo records
          if (redoCount > 0L) {
      
              // get the next redo record
              String redoRecord = engine.getRedoRecord();
      
              // loop while we still have redo records
              while (redoRecord != null) {
                  try {
                      // process the redo record
                      String info = engine.processRedoRecord(redoRecord, SZ_WITH_INFO_FLAGS);
      
                      // do something with the "info JSON" (varies by application)
                      JsonObject jsonObject = Json.createReader(new StringReader(info)).readObject();
                      if (jsonObject.containsKey("AFFECTED_ENTITIES")) {
                          JsonArray affectedArr = jsonObject.getJsonArray("AFFECTED_ENTITIES");
                          for (JsonObject affected : affectedArr.getValuesAs(JsonObject.class)) {
                              long affectedId = affected.getJsonNumber("ENTITY_ID").longValue();
      
                              ...
                          }
                      }
      
                  } catch (SzException e) {
                      // handle or rethrow the other exceptions
                      logError("Failed to process redo record: " + redoRecord, e);
                  }
      
                  // get the next redo record
                  redoRecord = engine.getRedoRecord();
              }
          }
      
      } catch (SzException e) {
          // handle or rethrow the other exceptions
          logError("Failed to process redos.", e);
      }
      

      Returns:
      The number of redo records pending to be processed.
      Throws:
      SzException - If a failure occurs.
      See Also: