senzing package
The senzing Python package has 5 major modules / classes. Senzing objects are created using an Abstract Factory Pattern.
Module |
Class |
Creation |
---|---|---|
szconfig |
SzConfig |
sz_config = sz_abstract_factory.create_config() |
szconfigmanager |
SzConfigManager |
sz_configmanager = sz_abstract_factory.create_configmanager() |
szdiagnostic |
SzDiagnostic |
sz_diagnostic = sz_abstract_factory.create_diagnostic() |
szengine |
SzEngine |
sz_engine = sz_abstract_factory.create_engine() |
szproduct |
SzProduct |
sz_product = sz_abstract_factory.create_product() |
In the examples, the creation of the Senzing Abstract Factory has been abstracted to
from . import sz_abstract_factory
and the creation of the Senzing objects has been abstracted to
from . import sz_engine
For the full implementation of the documentation examples, visit the source code on GitHub.
szabstractfactory
szabstractfactory.py is the abstract class for all implementations of SzAbstractFactory.
- class senzing.szabstractfactory.SzAbstractFactory[source]
Bases:
ABC
SzAbstractFactory is the definition of the Senzing Python SDK SzAbstractFactory implementations.
- abstractmethod create_configmanager() SzConfigManager [source]
The create_configmanager method creates a new implementation of an SzConfigManager object.
Args:
- Returns:
A new implementation.
- Return type:
Raises:
Example:
1from senzing import SzError 2 3from . import sz_abstract_factory 4 5try: 6 sz_configmanager = sz_abstract_factory.create_configmanager() 7except SzError as err: 8 print(f"\nERROR: {err}\n")
Output:
1// No output from this example.
- abstractmethod create_diagnostic() SzDiagnostic [source]
The create_diagnostic method creates a new implementation of an SzDiagnostic object.
Args:
- Returns:
A new implementation.
- Return type:
Raises:
Example:
1from senzing import SzError 2 3from . import sz_abstract_factory 4 5try: 6 sz_diagnostic = sz_abstract_factory.create_diagnostic() 7except SzError as err: 8 print(f"\nERROR: {err}\n")
Output:
1// No output from this example.
- abstractmethod create_engine() SzEngine [source]
The create_engine method creates a new implementation of an SzEngine object.
Args:
- Returns:
A new implementation.
- Return type:
Raises:
Example:
1from senzing import SzError 2 3from . import sz_abstract_factory 4 5try: 6 sz_engine = sz_abstract_factory.create_engine() 7except SzError as err: 8 print(f"\nERROR: {err}\n")
Output:
1// No output from this example.
- abstractmethod create_product() SzProduct [source]
The create_product method creates a new implementation of an SzProduct object.
Args:
- Returns:
A new implementation.
- Return type:
Raises:
Example:
1from senzing import SzError 2 3from . import sz_abstract_factory 4 5try: 6 sz_product = sz_abstract_factory.create_product() 7except SzError as err: 8 print(f"\nERROR: {err}\n")
Output:
1// No output from this example.
- help(method_name: str = '') str [source]
Return the help for a particular message.
- Parameters:
method_name (str) – The name of the method. (e.g. “init”). If empty, a list of methods and descriptions is returned.
- Returns:
The Help information about the requested method
- Return type:
str
- abstractmethod reinitialize(config_id: int) None [source]
The reinitialize method reinitializes the Senzing objects using a specific configuration identifier. A list of available configuration identifiers can be retrieved using szconfigmanager.get_config_registry.
- Parameters:
config_id (int) – The configuration ID used for the initialization
- Raises:
TypeError – Incorrect datatype of input parameter.
szexception.SzError – config_id does not exist.
Example:
1from senzing import SzError 2 3from . import sz_abstract_factory 4 5try: 6 # Using get_active_config_id for demonstrations purposes. 7 sz_engine = sz_abstract_factory.create_engine() 8 config_id = sz_engine.get_active_config_id() 9 sz_abstract_factory.reinitialize(config_id) 10except SzError as err: 11 print(f"\nERROR: {err}\n")
szconfig
szconfig.py is the abstract class for all implementations of SzConfig.
- class senzing.szconfig.SzConfig[source]
Bases:
ABC
SzConfig is the definition of the Senzing Python SDK that is implemented by packages such as szconfig.py.
- abstractmethod export() str [source]
The export method retrieves the definition for this configuration.
Args:
- Returns:
A string containing a JSON Document representation of the Senzing SzConfig object.
- Return type:
str
- Raises:
TypeError – Incorrect datatype of input parameter.
Example:
1from senzing import SzError 2 3from . import sz_configmanager 4 5try: 6 sz_config = sz_configmanager.create_config_from_template() 7 config_definition = sz_config.export() 8 print(f"\n{config_definition}\n") 9except SzError as err: 10 print(f"\nERROR: {err}\n")
Output:
1// Output has been formatted and pruned for easier reading. 2// To view a complete configuration, visit /opt/senzing/er/resources/templates/g2config.json 3 4{ 5 "G2_CONFIG": { 6 "CFG_ATTR": [], 7 "CFG_CFBOM": [], 8 "CFG_CFCALL": [], 9 "CFG_CFRTN": [], 10 "CFG_CFUNC": [], 11 "CFG_DFBOM": [], 12 "CFG_DFCALL": [], 13 "CFG_DFUNC": [], 14 "CFG_DSRC": [], 15 "CFG_DSRC_INTEREST": [], 16 "CFG_ECLASS": [], 17 "CFG_EFBOM": [], 18 "CFG_EFCALL": [], 19 "CFG_EFUNC": [], 20 "CFG_ERFRAG": [], 21 "CFG_ERRULE": [], 22 "CFG_ETYPE": [], 23 "CFG_FBOM": [], 24 "CFG_FBOVR": [], 25 "CFG_FCLASS": [], 26 "CFG_FELEM": [], 27 "CFG_FTYPE": [], 28 "CFG_GENERIC_THRESHOLD": [], 29 "CFG_GPLAN": [], 30 "CFG_LENS": [], 31 "CFG_LENSRL": [], 32 "CFG_RCLASS": [], 33 "CFG_RTYPE": [], 34 "CFG_SFCALL": [], 35 "CFG_SFUNC": [], 36 "SYS_OOM": [], 37 "CONFIG_BASE_VERSION": { 38 "VERSION": "4.0.0", 39 "BUILD_VERSION": "4.0.0.00000", 40 "BUILD_DATE": "2025-01-01", 41 "BUILD_NUMBER": "00000", 42 "COMPATIBILITY_VERSION": { 43 "CONFIG_VERSION": "11" 44 } 45 } 46 } 47}
- abstractmethod get_data_source_registry() str [source]
The get_data_source_registry method gets the data source registry for this configuration.
Args:
- Returns:
A string containing a JSON document listing all of the data sources.
- Return type:
str
- Raises:
TypeError – Incorrect datatype of input parameter.
Example:
1from senzing import SzError 2 3from . import sz_configmanager 4 5try: 6 sz_config = sz_configmanager.create_config_from_template() 7 result = sz_config.get_data_source_registry() 8 print(f"\n{result}\n") 9except SzError as err: 10 print(f"\nERROR: {err}\n")
Output:
1// Output has been formatted for easier reading. 2 3{ 4 "DATA_SOURCES": [ 5 { 6 "DSRC_ID": 1, 7 "DSRC_CODE": "TEST" 8 }, 9 { 10 "DSRC_ID": 2, 11 "DSRC_CODE": "SEARCH" 12 } 13 ] 14}
- help(method_name: str = '') str [source]
The help method returns help for a particular message.
- Parameters:
method_name (str) – The name of the method. (e.g. “init”). If empty, a list of methods and descriptions is returned.
- Returns:
The Help information about the requested method
- Return type:
str
- abstractmethod register_data_source(data_source_code: str) str [source]
The register_data_source method adds a data source to this configuration.
- Parameters:
data_source_code (str) – Name of data source code to add.
- Returns:
A string containing a JSON document listing the newly created data source.
- Return type:
str
- Raises:
TypeError – Incorrect datatype of input parameter.
Example:
1from senzing import SzError 2 3from . import sz_configmanager 4 5data_source_code = "NAME_OF_DATASOURCE" 6 7try: 8 sz_config = sz_configmanager.create_config_from_template() 9 result = sz_config.register_data_source(data_source_code) 10 print(f"\n{result}\n") 11except SzError as err: 12 print(f"\nERROR: {err}\n")
Output:
1// Output has been formatted for easier reading. 2 3{ 4 "DSRC_ID": 1001 5}
- abstractmethod unregister_data_source(data_source_code: str) str [source]
The unregister_data_source method removes a data source from this configuration.
- Parameters:
data_source_code (str) – Name of data source code to delete.
- Raises:
TypeError – Incorrect datatype of input parameter.
Example:
1from senzing import SzError 2 3from . import sz_configmanager 4 5data_source_code = "TEST" 6 7try: 8 sz_config = sz_configmanager.create_config_from_template() 9 _ = sz_config.unregister_data_source(data_source_code) 10except SzError as err: 11 print(f"\nERROR: {err}\n")
Output:
1// No output from this example.
szconfigmanager
szconfigmanager.py is the abstract class for all implementations of SzConfigManager.
- class senzing.szconfigmanager.SzConfigManager[source]
Bases:
ABC
SzConfigManager is the definition of the Senzing Python SDK that is implemented by packages such as szconfigmanager.py.
- abstractmethod create_config_from_config_id(config_id: int) SzConfig [source]
The create_config_from_config_id method creates a new SzConfig instance for a configuration ID.
- Parameters:
config_id (int) – The configuration identifier of the desired Senzing configuration to retrieve.
- Returns:
Represents an in-memory Senzing configuration that can be modified.
- Return type:
- Raises:
TypeError – Incorrect datatype of input parameter.
Example:
1from senzing import SzError 2 3from . import sz_configmanager 4 5try: 6 config_id = sz_configmanager.get_default_config_id() 7 sz_config = sz_configmanager.create_config_from_config_id(config_id) 8except SzError as err: 9 print(f"\nERROR: {err}\n")
Output:
1// No output from this example.
- abstractmethod create_config_from_string(config_definition: str) SzConfig [source]
The create_config_from_string method creates a new SzConfig instance from a configuration definition.
- Parameters:
config_definition (str) – The Senzing configuration JSON document.
- Returns:
Represents an in-memory Senzing configuration that can be modified.
- Return type:
- Raises:
TypeError – Incorrect datatype of input parameter.
Example:
1import json 2 3from senzing import SzError 4 5from . import sz_configmanager 6 7try: 8 config_definition = json.dumps({}) 9 sz_config = sz_configmanager.create_config_from_string(config_definition) 10except SzError as err: 11 print(f"\nERROR: {err}\n")
Output:
1
- abstractmethod create_config_from_template() SzConfig [source]
The create_config_from_template method creates a new SzConfig instance from the template configuration definition.
The template configuration is located at PIPELINE.RESOURCEPATH/templates/g2config.json
- Parameters:
config_definition (str) – The Senzing configuration JSON document.
- Returns:
Represents an in-memory Senzing configuration that can be modified.
- Return type:
- Raises:
TypeError – Incorrect datatype of input parameter.
Example:
1from senzing import SzError 2 3from . import sz_configmanager 4 5try: 6 sz_config = sz_configmanager.create_config_from_template() 7except SzError as err: 8 print(f"\nERROR: {err}\n")
Output:
1// No output from this example.
- abstractmethod get_config_registry() str [source]
The get_config_registry method gets the configuration registry.
- Returns:
A JSON document containing Senzing configurations.
- Return type:
str
- Raises:
TypeError – Incorrect datatype of input parameter.
Example:
1from senzing import SzError 2 3from . import sz_configmanager 4 5try: 6 config_list = sz_configmanager.get_config_registry() 7 print(f"\n{config_list}\n") 8except SzError as err: 9 print(f"\nERROR: {err}\n")
Output:
1// Output has been formatted for easier reading. 2 3{ 4 "CONFIGS": [ 5 { 6 "CONFIG_ID": 41320074, 7 "CONFIG_COMMENTS": "Default Senzing configuration", 8 "SYS_CREATE_DT": "YYYY-MM-DD HH:MM:SS.mmm" 9 }, 10 { 11 "CONFIG_ID": 490826130, 12 "CONFIG_COMMENTS": "Test", 13 "SYS_CREATE_DT": "YYYY-MM-DD HH:MM:SS.mmm" 14 } 15 ] 16}
- abstractmethod get_default_config_id() int [source]
The get_default_config_id method gets the default configuration ID for the repository.
- Returns:
A configuration identifier which identifies the current configuration in use.
- Return type:
int
- Raises:
TypeError – Incorrect datatype of input parameter.
Example:
1from senzing import SzError 2 3from . import sz_configmanager 4 5try: 6 config_id = sz_configmanager.get_default_config_id() 7 print(f"\n{config_id}\n") 8except SzError as err: 9 print(f"\nERROR: {err}\n")
Output:
1692503001
- help(method_name: str = '') str [source]
The help method returns help for a particular message.
- Parameters:
method_name (str) – The name of the method. (e.g. “init”). If empty, a list of methods and descriptions is returned.
- Returns:
The Help information about the requested method
- Return type:
str
- abstractmethod register_config(config_definition: str, config_comment: str) int [source]
The register_config method registers a configuration definition in the repository.
- Parameters:
config_definition (str) – The Senzing configuration JSON document.
config_comment (str) – free-form string of comments describing the configuration document.
- Returns:
A configuration identifier.
- Return type:
int
- Raises:
TypeError – Incorrect datatype of input parameter.
Example:
1from senzing import SzError 2 3from . import sz_configmanager 4 5try: 6 config_comment = "Just an empty example" 7 sz_config = sz_configmanager.create_config_from_template() 8 config_definition = sz_config.export() 9 config_id = sz_configmanager.register_config(config_definition, config_comment) 10except SzError as err: 11 print(f"\nERROR: {err}\n")
Output:
1// No output from this example.
- abstractmethod replace_default_config_id(current_default_config_id: int, new_default_config_id: int) None [source]
The replace_default_config_id method replaces the existing default configuration ID with a new configuration ID.
It is like a “compare-and-swap” instruction to serialize concurrent editing of configuration. If current_default_config_id is no longer the “current configuration identifier”, the operation will fail. To simply set the default configuration ID, use set_default_config_id.
- Parameters:
current_default_config_id (int) – The configuration identifier to replace.
new_default_config_id (int) – The configuration identifier to use as the default.
- Raises:
TypeError – Incorrect datatype of input parameter.
Example:
1import time 2 3from senzing import SzError 4 5from . import sz_configmanager 6 7config_comment = "Just an example" 8data_source_code = f"REPLACE_DEFAULT_CONFIG_ID_{time.time()}" 9 10try: 11 sz_config = sz_configmanager.create_config_from_template() 12 current_default_config_id = sz_configmanager.get_default_config_id() 13 14 # Create a new config. 15 16 sz_config = sz_configmanager.create_config_from_config_id(current_default_config_id) 17 sz_config.register_data_source(data_source_code) 18 19 # Persist the new config. 20 21 config_definition = sz_config.export() 22 new_default_config_id = sz_configmanager.register_config(config_definition, config_comment) 23 24 # Replace default config id. 25 26 sz_configmanager.replace_default_config_id(current_default_config_id, new_default_config_id) 27except SzError as err: 28 print(f"\nERROR: {err}\n")
- abstractmethod set_default_config(config_definition: str, config_comment: str) int [source]
The set_default_config method registers a configuration in the repository and sets its ID as the default for the repository.
To serialize modifying of the configuration identifier, see replace_default_config_id.
- Parameters:
config_definition (str) – The Senzing configuration JSON document.
config_comment (str) – free-form string of comments describing the configuration document.
- Raises:
TypeError – Incorrect datatype of input parameter.
Example:
1import time 2 3from senzing import SzError 4 5from . import sz_configmanager 6 7config_comment = "Just an example" 8data_source_code = f"REPLACE_DEFAULT_CONFIG_ID_{time.time()}" 9 10try: 11 12 # Create a new config. 13 14 sz_config = sz_configmanager.create_config_from_template() 15 sz_config.register_data_source(data_source_code) 16 17 # Persist the new default config. 18 19 config_definition = sz_config.export() 20 config_id = sz_configmanager.set_default_config(config_definition, config_comment) 21 print(config_id) 22except SzError as err: 23 print(f"\nERROR: {err}\n")
Output:
1706203482
- abstractmethod set_default_config_id(config_id: int) None [source]
The set_default_config_id method sets the default configuration ID.
To serialize modifying of the configuration identifier, see replace_default_config_id.
- Parameters:
config_id (int) – The configuration identifier of the Senzing Engine configuration to use as the default.
- Raises:
TypeError – Incorrect datatype of input parameter.
Example:
1import time 2 3from senzing import SzError 4 5from . import sz_configmanager 6 7config_comment = "Just an example" 8data_source_code = f"REPLACE_DEFAULT_CONFIG_ID_{time.time()}" 9 10try: 11 12 # Create a new config. 13 14 sz_config = sz_configmanager.create_config_from_template() 15 sz_config.register_data_source(data_source_code) 16 17 # Persist the new config. 18 19 config_definition = sz_config.export() 20 new_default_config_id = sz_configmanager.register_config(config_definition, config_comment) 21 22 # Set default config id. 23 24 sz_configmanager.set_default_config_id(new_default_config_id) 25except SzError as err: 26 print(f"\nERROR: {err}\n")
szdiagnostic
szdiagnostic.py is the abstract class for all implementations of SzDiagnostic.
- class senzing.szdiagnostic.SzDiagnostic[source]
Bases:
ABC
Senzing diagnostic module access library
- abstractmethod check_repository_performance(seconds_to_run: int) str [source]
The check_repository_performance method conducts a rudimentary repository test to gauge I/O performance.
- Parameters:
seconds_to_run (int) – Duration of the test in seconds.
- Returns:
A string containing a JSON document.
- Return type:
str
- Raises:
TypeError – Incorrect datatype of input parameter.
szexception.SzError –
Example:
1from senzing import SzError 2 3from . import sz_diagnostic 4 5seconds_to_run = 3 6 7try: 8 result = sz_diagnostic.check_repository_performance(seconds_to_run) 9 print(f"\n{result}\n") 10except SzError as err: 11 print(f"\nERROR: {err}\n")
Output:
1// Output has been formatted for easier reading. 2 3{ 4 "numRecordsInserted": 227321, 5 "insertTime": 3000 6}
- abstractmethod get_repository_info() str [source]
The get_repository_info method returns overview information about the repository.
- Raises:
szexception.SzError –
Example:
1from senzing import SzError 2 3from . import sz_diagnostic 4 5try: 6 result = sz_diagnostic.get_repository_info() 7 print(f"\n{result}\n") 8except SzError as err: 9 print(f"\nERROR: {err}\n")
Output:
1// Output has been formatted for easier reading. 2 3{ 4 "dataStores": [ 5 { 6 "id": "CORE", 7 "type": "sqlite3", 8 "location": "/tmp/sqlite/G2C.db" 9 } 10 ] 11}
- help(method_name: str = '') str [source]
The help method returns help for a particular message.
- Parameters:
method_name (str) – The name of the method. (e.g. “init”). If empty, a list of methods and descriptions is returned.
- Returns:
The Help information about the requested method
- Return type:
str
- abstractmethod purge_repository() None [source]
Warning: The purge_repository method purges all data in the repository, except the configuration.
Before calling purge_repository all other instances of the Senzing API MUST be destroyed or shutdown.
Raises:
Example:
1from senzing import SzError 2 3from . import sz_diagnostic 4 5try: 6 _ = sz_diagnostic 7 # WARNING 8 # WARNING - This will remove all loaded and entity resolved data from the Senzing repository, use with caution! 9 # WARNING - Uncomment the purge_repository() call below to complete a purge 10 # WARNING 11 12 # sz_diagnostic.purge_repository() 13except SzError as err: 14 print(f"\nERROR: {err}\n")
szengine
szengine.py is the abstract class for all implementations of SzEngine.
- class senzing.szengine.SzEngine[source]
Bases:
ABC
Senzing engine module access library
- abstractmethod add_record(data_source_code: str, record_id: str, record_definition: str, flags: int = <SzEngineFlags.SZ_NO_FLAGS: 0>) str [source]
The add_record method loads a record into the repository and performs entity resolution.
Can be called as many times as desired and from multiple threads at the same time.
- Parameters:
data_source_code (str) – Identifies the provenance of the data.
record_id (str) – The unique identifier within the records of the same data source.
record_definition (str) – A JSON document containing the record to be added to the Senzing repository.
flags (int, optional) – Flags used to control information returned. Defaults to SzEngineFlags.SZ_ADD_RECORD_DEFAULT_FLAGS.
- Returns:
If flags are set to return the WITH_INFO response a JSON document containing the details, otherwise an empty string.
- Return type:
str
Raises:
Example:
1import json 2 3from senzing import SzEngineFlags, SzError 4 5from . import sz_engine 6 7data_source_code = "TEST" 8flags = SzEngineFlags.SZ_WITH_INFO 9record_definition = json.dumps( 10 { 11 "RECORD_TYPE": "PERSON", 12 "PRIMARY_NAME_LAST": "Smith", 13 "PRIMARY_NAME_FIRST": "Robert", 14 "DATE_OF_BIRTH": "12/11/1978", 15 "ADDR_TYPE": "MAILING", 16 "ADDR_LINE1": "123 Main Street, Las Vegas NV 89132", 17 "PHONE_TYPE": "HOME", 18 "PHONE_NUMBER": "702-919-1300", 19 "EMAIL_ADDRESS": "bsmith@work.com", 20 "DATE": "1/2/18", 21 "STATUS": "Active", 22 "AMOUNT": "100", 23 } 24) 25record_id = "1" 26 27try: 28 result = sz_engine.add_record(data_source_code, record_id, record_definition, flags) 29 print(f"\n{result}\n") 30except SzError as err: 31 print(f"\nERROR: {err}\n")
Output:
1// Output has been formatted for easier reading. 2 3{ 4 "DATA_SOURCE": "TEST", 5 "RECORD_ID": "1", 6 "AFFECTED_ENTITIES": [ 7 { 8 "ENTITY_ID": 1 9 }, 10 { 11 "ENTITY_ID": 35 12 } 13 ] 14}
- abstractmethod close_export_report(export_handle: int) None [source]
The close_export_report method closes an export report.
It is part of the export_json_entity_report, fetch_next, close_export_report lifecycle of a list of sized entities.
- Parameters:
export_handle (int) – A handle created by export_json_entity_report or export_csv_entity_report.
Raises:
Example:
1from senzing import SzEngineFlags, SzError 2 3from . import sz_engine 4 5flags = SzEngineFlags.SZ_EXPORT_DEFAULT_FLAGS 6 7try: 8 export_handle = sz_engine.export_json_entity_report(flags) 9 while True: 10 fragment = sz_engine.fetch_next(export_handle) 11 if not fragment: 12 break 13 print(fragment, end="") 14 sz_engine.close_export_report(export_handle) 15except SzError as err: 16 print(f"\nERROR: {err}\n")
Output:
1{"RESOLVED_ENTITY":{"ENTITY_ID":1,"ENTITY_NAME":"","FEATURES":{},"RECORD_SUMMARY":[{"DATA_SOURCE":"TEST","RECORD_COUNT":1}],"RECORDS":[{"DATA_SOURCE":"TEST","RECORD_ID":"2","INTERNAL_ID":1,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":"","FIRST_SEEN_DT":"2024-10-25T17:38:57Z","LAST_SEEN_DT":"2024-10-25T17:38:57Z"}]},"RELATED_ENTITIES":[]} 2{"RESOLVED_ENTITY":{"ENTITY_ID":35,"ENTITY_NAME":"Robert Smith","FEATURES":{"ADDRESS":[{"FEAT_DESC":"1515 Adela Lane Las Vegas NV 89111","LIB_FEAT_ID":22,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"1515 Adela Lane Las Vegas NV 89111","LIB_FEAT_ID":22}]},{"FEAT_DESC":"123 Main Street, Las Vegas NV 89132","LIB_FEAT_ID":3,"USAGE_TYPE":"MAILING","FEAT_DESC_VALUES":[{"FEAT_DESC":"123 Main Street, Las Vegas NV 89132","LIB_FEAT_ID":3}]}],"DOB":[{"FEAT_DESC":"12/11/1978","LIB_FEAT_ID":2,"FEAT_DESC_VALUES":[{"FEAT_DESC":"12/11/1978","LIB_FEAT_ID":2},{"FEAT_DESC":"11/12/1978","LIB_FEAT_ID":21}]}],"EMAIL":[{"FEAT_DESC":"bsmith@work.com","LIB_FEAT_ID":5,"FEAT_DESC_VALUES":[{"FEAT_DESC":"bsmith@work.com","LIB_FEAT_ID":5}]}],"NAME":[{"FEAT_DESC":"Robert Smith","LIB_FEAT_ID":1,"USAGE_TYPE":"PRIMARY","FEAT_DESC_VALUES":[{"FEAT_DESC":"Robert Smith","LIB_FEAT_ID":1},{"FEAT_DESC":"Bob J Smith","LIB_FEAT_ID":38},{"FEAT_DESC":"Bob Smith","LIB_FEAT_ID":20}]}],"PHONE":[{"FEAT_DESC":"702-919-1300","LIB_FEAT_ID":4,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"702-919-1300","LIB_FEAT_ID":4}]},{"FEAT_DESC":"702-919-1300","LIB_FEAT_ID":4,"USAGE_TYPE":"MOBILE","FEAT_DESC_VALUES":[{"FEAT_DESC":"702-919-1300","LIB_FEAT_ID":4}]}],"RECORD_TYPE":[{"FEAT_DESC":"PERSON","LIB_FEAT_ID":10,"FEAT_DESC_VALUES":[{"FEAT_DESC":"PERSON","LIB_FEAT_ID":10}]}]},"RECORD_SUMMARY":[{"DATA_SOURCE":"CUSTOMERS","RECORD_COUNT":3}],"RECORDS":[{"DATA_SOURCE":"CUSTOMERS","RECORD_ID":"1001","INTERNAL_ID":35,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":"","FIRST_SEEN_DT":"2024-10-25T17:39:00Z","LAST_SEEN_DT":"2024-10-25T17:39:00Z"},{"DATA_SOURCE":"CUSTOMERS","RECORD_ID":"1002","INTERNAL_ID":36,"MATCH_KEY":"+NAME+DOB+PHONE","MATCH_LEVEL_CODE":"RESOLVED","ERRULE_CODE":"CNAME_CFF_CEXCL","FIRST_SEEN_DT":"2024-10-25T17:39:00Z","LAST_SEEN_DT":"2024-10-25T17:39:00Z"},{"DATA_SOURCE":"CUSTOMERS","RECORD_ID":"1003","INTERNAL_ID":37,"MATCH_KEY":"+NAME+DOB+EMAIL","MATCH_LEVEL_CODE":"RESOLVED","ERRULE_CODE":"SF1_PNAME_CSTAB","FIRST_SEEN_DT":"2024-10-25T17:39:00Z","LAST_SEEN_DT":"2024-10-25T17:39:00Z"}]},"RELATED_ENTITIES":[]} 3{"RESOLVED_ENTITY":{"ENTITY_ID":38,"ENTITY_NAME":"Edward Kusha","FEATURES":{"ADDRESS":[{"FEAT_DESC":"1304 Poppy Hills Dr Blacklick OH 43004","LIB_FEAT_ID":46,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"1304 Poppy Hills Dr Blacklick OH 43004","LIB_FEAT_ID":46}]}],"DOB":[{"FEAT_DESC":"3/1/1970","LIB_FEAT_ID":45,"FEAT_DESC_VALUES":[{"FEAT_DESC":"3/1/1970","LIB_FEAT_ID":45}]}],"EMAIL":[{"FEAT_DESC":"Kusha123@hmail.com","LIB_FEAT_ID":48,"FEAT_DESC_VALUES":[{"FEAT_DESC":"Kusha123@hmail.com","LIB_FEAT_ID":48}]}],"NAME":[{"FEAT_DESC":"Edward Kusha","LIB_FEAT_ID":44,"USAGE_TYPE":"PRIMARY","FEAT_DESC_VALUES":[{"FEAT_DESC":"Edward Kusha","LIB_FEAT_ID":44}]}],"RECORD_TYPE":[{"FEAT_DESC":"PERSON","LIB_FEAT_ID":10,"FEAT_DESC_VALUES":[{"FEAT_DESC":"PERSON","LIB_FEAT_ID":10}]}],"SSN":[{"FEAT_DESC":"294-66-9999","LIB_FEAT_ID":47,"FEAT_DESC_VALUES":[{"FEAT_DESC":"294-66-9999","LIB_FEAT_ID":47}]}]},"RECORD_SUMMARY":[{"DATA_SOURCE":"CUSTOMERS","RECORD_COUNT":1}],"RECORDS":[{"DATA_SOURCE":"CUSTOMERS","RECORD_ID":"1009","INTERNAL_ID":38,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":"","FIRST_SEEN_DT":"2024-10-25T17:39:00Z","LAST_SEEN_DT":"2024-10-25T17:39:00Z"}]},"RELATED_ENTITIES":[]}
- abstractmethod count_redo_records() int [source]
The count_redo_records method gets the number of redo records pending processing.
- Returns:
The number of redo records in Senzing’s redo queue.
- Return type:
int
Raises:
Example:
1from senzing import SzError 2 3from . import sz_engine 4 5try: 6 result = sz_engine.count_redo_records() 7 print(f"\n{result}\n") 8except SzError as err: 9 print(f"\nERROR: {err}\n")
Output:
12
- abstractmethod delete_record(data_source_code: str, record_id: str, flags: int = <SzEngineFlags.SZ_NO_FLAGS: 0>) str [source]
The delete_record method deletes a record from the repository and performs entity resolution.
Can be called as many times as desired and from multiple threads at the same time.
- Parameters:
data_source_code (str) – Identifies the provenance of the data.
record_id (str) – The unique identifier within the records of the same data source.
flags (int, optional) – Flags used to control information returned. Defaults to SzEngineFlags.SZ_DELETE_RECORD_DEFAULT_FLAGS.
- Returns:
If flags are set to return the WITH_INFO response a JSON document containing the details, otherwise an empty string.
- Return type:
str
Raises:
Example:
1from senzing import SzEngineFlags, SzError 2 3from . import sz_engine 4 5data_source_code = "TEST" 6flags = SzEngineFlags.SZ_WITH_INFO 7record_id = "1" 8 9try: 10 result = sz_engine.delete_record(data_source_code, record_id, flags) 11 print(f"\n{result}\n") 12except SzError as err: 13 print(f"\nERROR: {err}\n")
Output:
1// Output has been formatted for easier reading. 2 3{ 4 "DATA_SOURCE": "TEST", 5 "RECORD_ID": "1", 6 "AFFECTED_ENTITIES": [ 7 { 8 "ENTITY_ID": 35 9 } 10 ], 11}
- abstractmethod export_csv_entity_report(csv_column_list: str, flags: int = <SzEngineFlags.SZ_EXPORT_DEFAULT_FLAGS: 3734497>) int [source]
The export_csv_entity_report method initiates an export report of entity data in CSV format.
Warning: export_csv_entity_report is not recommended for large systems as it does not scale. It is recommended larger systems implement real-time replication to a data warehouse.
It is part of the export_csv_entity_report, fetch_next, close_export_report lifecycle of a list of entities to export.
- Available CSV columns: RESOLVED_ENTITY_ID, RESOLVED_ENTITY_NAME, RELATED_ENTITY_ID, MATCH_LEVEL,
MATCH_LEVEL_CODE, MATCH_KEY, MATCH_KEY_DETAILS,I S_DISCLOSED, IS_AMBIGUOUS, DATA_SOURCE, RECORD_ID, JSON_DATA, FIRST_SEEN_DT, LAST_SEEN_DT, UNMAPPED_DATA, ERRULE_CODE, RELATED_ENTITY_NAME
- Suggested CSV columns: RESOLVED_ENTITY_ID, RELATED_ENTITY_ID, RESOLVED_ENTITY_NAME, MATCH_LEVEL,
MATCH_KEY, DATA_SOURCE, RECORD_ID
- Parameters:
csv_column_list (str) – A comma-separated list of column names for the CSV export.
flags (int, optional) – Flags used to control information returned. Defaults to SzEngineFlags.SZ_EXPORT_DEFAULT_FLAGS.
- Returns:
A handle that identifies the document to be scrolled through using fetch_next.
- Return type:
int
Raises:
Example:
1from senzing import SzEngineFlags, SzError 2 3from . import sz_engine 4 5csv_column_list = ( 6 "RESOLVED_ENTITY_ID,RELATED_ENTITY_ID,RESOLVED_ENTITY_NAME,MATCH_LEVEL,MATCH_KEY,DATA_SOURCE,RECORD_ID" 7) 8flags = SzEngineFlags.SZ_EXPORT_DEFAULT_FLAGS 9 10try: 11 export_handle = sz_engine.export_csv_entity_report(csv_column_list, flags) 12 while True: 13 fragment = sz_engine.fetch_next(export_handle) 14 if not fragment: 15 break 16 print(fragment, end="") 17 sz_engine.close_export_report(export_handle) 18except SzError as err: 19 print(f"\nERROR: {err}\n")
Output:
1RESOLVED_ENTITY_ID,RESOLVED_ENTITY_NAME,RELATED_ENTITY_ID,MATCH_LEVEL,MATCH_KEY,DATA_SOURCE,RECORD_ID 21,"",0,0,"","TEST","2" 335,"Robert Smith",0,0,"","CUSTOMERS","1001" 435,"Robert Smith",0,1,"+NAME+DOB+PHONE","CUSTOMERS","1002" 535,"Robert Smith",0,1,"+NAME+DOB+EMAIL","CUSTOMERS","1003" 638,"Edward Kusha",0,0,"","CUSTOMERS","1009"
- abstractmethod export_json_entity_report(flags: int = <SzEngineFlags.SZ_EXPORT_DEFAULT_FLAGS: 3734497>) int [source]
The export_json_entity_report method initiates an export report of entity data in JSON Lines format.
Warning: export_json_entity_report is not recommended for large systems as it does not scale. It is recommended larger systems implement real-time replication to a data warehouse.
It is part of the export_json_entity_report, fetch_next, close_export_report lifecycle of a list of entities to export.
- Parameters:
flags (int, optional) – Flags used to control information returned. Defaults to SzEngineFlags.SZ_EXPORT_DEFAULT_FLAGS.
- Returns:
A handle that identifies the document to be scrolled through using fetch_next.
- Return type:
int
Raises:
Example:
1from senzing import SzEngineFlags, SzError 2 3from . import sz_engine 4 5flags = SzEngineFlags.SZ_EXPORT_DEFAULT_FLAGS 6 7try: 8 export_handle = sz_engine.export_json_entity_report(flags) 9 while True: 10 fragment = sz_engine.fetch_next(export_handle) 11 if not fragment: 12 break 13 print(fragment, end="") 14 sz_engine.close_export_report(export_handle) 15except SzError as err: 16 print(f"\nERROR: {err}\n")
Output:
1{"RESOLVED_ENTITY":{"ENTITY_ID":1,"ENTITY_NAME":"","FEATURES":{},"RECORD_SUMMARY":[{"DATA_SOURCE":"TEST","RECORD_COUNT":1}],"RECORDS":[{"DATA_SOURCE":"TEST","RECORD_ID":"2","INTERNAL_ID":1,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":"","FIRST_SEEN_DT":"2024-10-25T17:38:57Z","LAST_SEEN_DT":"2024-10-25T17:38:57Z"}]},"RELATED_ENTITIES":[]} 2{"RESOLVED_ENTITY":{"ENTITY_ID":35,"ENTITY_NAME":"Robert Smith","FEATURES":{"ADDRESS":[{"FEAT_DESC":"1515 Adela Lane Las Vegas NV 89111","LIB_FEAT_ID":22,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"1515 Adela Lane Las Vegas NV 89111","LIB_FEAT_ID":22}]},{"FEAT_DESC":"123 Main Street, Las Vegas NV 89132","LIB_FEAT_ID":3,"USAGE_TYPE":"MAILING","FEAT_DESC_VALUES":[{"FEAT_DESC":"123 Main Street, Las Vegas NV 89132","LIB_FEAT_ID":3}]}],"DOB":[{"FEAT_DESC":"12/11/1978","LIB_FEAT_ID":2,"FEAT_DESC_VALUES":[{"FEAT_DESC":"12/11/1978","LIB_FEAT_ID":2},{"FEAT_DESC":"11/12/1978","LIB_FEAT_ID":21}]}],"EMAIL":[{"FEAT_DESC":"bsmith@work.com","LIB_FEAT_ID":5,"FEAT_DESC_VALUES":[{"FEAT_DESC":"bsmith@work.com","LIB_FEAT_ID":5}]}],"NAME":[{"FEAT_DESC":"Robert Smith","LIB_FEAT_ID":1,"USAGE_TYPE":"PRIMARY","FEAT_DESC_VALUES":[{"FEAT_DESC":"Robert Smith","LIB_FEAT_ID":1},{"FEAT_DESC":"Bob J Smith","LIB_FEAT_ID":38},{"FEAT_DESC":"Bob Smith","LIB_FEAT_ID":20}]}],"PHONE":[{"FEAT_DESC":"702-919-1300","LIB_FEAT_ID":4,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"702-919-1300","LIB_FEAT_ID":4}]},{"FEAT_DESC":"702-919-1300","LIB_FEAT_ID":4,"USAGE_TYPE":"MOBILE","FEAT_DESC_VALUES":[{"FEAT_DESC":"702-919-1300","LIB_FEAT_ID":4}]}],"RECORD_TYPE":[{"FEAT_DESC":"PERSON","LIB_FEAT_ID":10,"FEAT_DESC_VALUES":[{"FEAT_DESC":"PERSON","LIB_FEAT_ID":10}]}]},"RECORD_SUMMARY":[{"DATA_SOURCE":"CUSTOMERS","RECORD_COUNT":3}],"RECORDS":[{"DATA_SOURCE":"CUSTOMERS","RECORD_ID":"1001","INTERNAL_ID":35,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":"","FIRST_SEEN_DT":"2024-10-25T17:39:00Z","LAST_SEEN_DT":"2024-10-25T17:39:00Z"},{"DATA_SOURCE":"CUSTOMERS","RECORD_ID":"1002","INTERNAL_ID":36,"MATCH_KEY":"+NAME+DOB+PHONE","MATCH_LEVEL_CODE":"RESOLVED","ERRULE_CODE":"CNAME_CFF_CEXCL","FIRST_SEEN_DT":"2024-10-25T17:39:00Z","LAST_SEEN_DT":"2024-10-25T17:39:00Z"},{"DATA_SOURCE":"CUSTOMERS","RECORD_ID":"1003","INTERNAL_ID":37,"MATCH_KEY":"+NAME+DOB+EMAIL","MATCH_LEVEL_CODE":"RESOLVED","ERRULE_CODE":"SF1_PNAME_CSTAB","FIRST_SEEN_DT":"2024-10-25T17:39:00Z","LAST_SEEN_DT":"2024-10-25T17:39:00Z"}]},"RELATED_ENTITIES":[]} 3{"RESOLVED_ENTITY":{"ENTITY_ID":38,"ENTITY_NAME":"Edward Kusha","FEATURES":{"ADDRESS":[{"FEAT_DESC":"1304 Poppy Hills Dr Blacklick OH 43004","LIB_FEAT_ID":46,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"1304 Poppy Hills Dr Blacklick OH 43004","LIB_FEAT_ID":46}]}],"DOB":[{"FEAT_DESC":"3/1/1970","LIB_FEAT_ID":45,"FEAT_DESC_VALUES":[{"FEAT_DESC":"3/1/1970","LIB_FEAT_ID":45}]}],"EMAIL":[{"FEAT_DESC":"Kusha123@hmail.com","LIB_FEAT_ID":48,"FEAT_DESC_VALUES":[{"FEAT_DESC":"Kusha123@hmail.com","LIB_FEAT_ID":48}]}],"NAME":[{"FEAT_DESC":"Edward Kusha","LIB_FEAT_ID":44,"USAGE_TYPE":"PRIMARY","FEAT_DESC_VALUES":[{"FEAT_DESC":"Edward Kusha","LIB_FEAT_ID":44}]}],"RECORD_TYPE":[{"FEAT_DESC":"PERSON","LIB_FEAT_ID":10,"FEAT_DESC_VALUES":[{"FEAT_DESC":"PERSON","LIB_FEAT_ID":10}]}],"SSN":[{"FEAT_DESC":"294-66-9999","LIB_FEAT_ID":47,"FEAT_DESC_VALUES":[{"FEAT_DESC":"294-66-9999","LIB_FEAT_ID":47}]}]},"RECORD_SUMMARY":[{"DATA_SOURCE":"CUSTOMERS","RECORD_COUNT":1}],"RECORDS":[{"DATA_SOURCE":"CUSTOMERS","RECORD_ID":"1009","INTERNAL_ID":38,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":"","FIRST_SEEN_DT":"2024-10-25T17:39:00Z","LAST_SEEN_DT":"2024-10-25T17:39:00Z"}]},"RELATED_ENTITIES":[]}
- abstractmethod fetch_next(export_handle: int) str [source]
The fetch_next method fetches the next line of entity data from an open export report.
Successive calls of fetch_next will export successive rows of entity data until there is no more. It is part of the export_json_entity_report or export_json_entity_report, fetch_next, close_export_report lifecycle of a list of exported entities.
- Parameters:
export_handle (int) – A handle created by export_json_entity_report or export_json_entity_report.
- Returns:
TODO:
- Return type:
str
Raises:
Example:
1from senzing import SzEngineFlags, SzError 2 3from . import sz_engine 4 5flags = SzEngineFlags.SZ_EXPORT_DEFAULT_FLAGS 6 7try: 8 export_handle = sz_engine.export_json_entity_report(flags) 9 while True: 10 fragment = sz_engine.fetch_next(export_handle) 11 if not fragment: 12 break 13 print(fragment, end="") 14 sz_engine.close_export_report(export_handle) 15except SzError as err: 16 print(f"\nERROR: {err}\n")
Output:
1{"RESOLVED_ENTITY":{"ENTITY_ID":1,"ENTITY_NAME":"","FEATURES":{},"RECORD_SUMMARY":[{"DATA_SOURCE":"TEST","RECORD_COUNT":1}],"RECORDS":[{"DATA_SOURCE":"TEST","RECORD_ID":"2","INTERNAL_ID":1,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":"","FIRST_SEEN_DT":"2024-10-25T17:38:57Z","LAST_SEEN_DT":"2024-10-25T17:38:57Z"}]},"RELATED_ENTITIES":[]} 2{"RESOLVED_ENTITY":{"ENTITY_ID":35,"ENTITY_NAME":"Robert Smith","FEATURES":{"ADDRESS":[{"FEAT_DESC":"1515 Adela Lane Las Vegas NV 89111","LIB_FEAT_ID":22,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"1515 Adela Lane Las Vegas NV 89111","LIB_FEAT_ID":22}]},{"FEAT_DESC":"123 Main Street, Las Vegas NV 89132","LIB_FEAT_ID":3,"USAGE_TYPE":"MAILING","FEAT_DESC_VALUES":[{"FEAT_DESC":"123 Main Street, Las Vegas NV 89132","LIB_FEAT_ID":3}]}],"DOB":[{"FEAT_DESC":"12/11/1978","LIB_FEAT_ID":2,"FEAT_DESC_VALUES":[{"FEAT_DESC":"12/11/1978","LIB_FEAT_ID":2},{"FEAT_DESC":"11/12/1978","LIB_FEAT_ID":21}]}],"EMAIL":[{"FEAT_DESC":"bsmith@work.com","LIB_FEAT_ID":5,"FEAT_DESC_VALUES":[{"FEAT_DESC":"bsmith@work.com","LIB_FEAT_ID":5}]}],"NAME":[{"FEAT_DESC":"Robert Smith","LIB_FEAT_ID":1,"USAGE_TYPE":"PRIMARY","FEAT_DESC_VALUES":[{"FEAT_DESC":"Robert Smith","LIB_FEAT_ID":1},{"FEAT_DESC":"Bob J Smith","LIB_FEAT_ID":38},{"FEAT_DESC":"Bob Smith","LIB_FEAT_ID":20}]}],"PHONE":[{"FEAT_DESC":"702-919-1300","LIB_FEAT_ID":4,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"702-919-1300","LIB_FEAT_ID":4}]},{"FEAT_DESC":"702-919-1300","LIB_FEAT_ID":4,"USAGE_TYPE":"MOBILE","FEAT_DESC_VALUES":[{"FEAT_DESC":"702-919-1300","LIB_FEAT_ID":4}]}],"RECORD_TYPE":[{"FEAT_DESC":"PERSON","LIB_FEAT_ID":10,"FEAT_DESC_VALUES":[{"FEAT_DESC":"PERSON","LIB_FEAT_ID":10}]}]},"RECORD_SUMMARY":[{"DATA_SOURCE":"CUSTOMERS","RECORD_COUNT":3}],"RECORDS":[{"DATA_SOURCE":"CUSTOMERS","RECORD_ID":"1001","INTERNAL_ID":35,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":"","FIRST_SEEN_DT":"2024-10-25T17:39:00Z","LAST_SEEN_DT":"2024-10-25T17:39:00Z"},{"DATA_SOURCE":"CUSTOMERS","RECORD_ID":"1002","INTERNAL_ID":36,"MATCH_KEY":"+NAME+DOB+PHONE","MATCH_LEVEL_CODE":"RESOLVED","ERRULE_CODE":"CNAME_CFF_CEXCL","FIRST_SEEN_DT":"2024-10-25T17:39:00Z","LAST_SEEN_DT":"2024-10-25T17:39:00Z"},{"DATA_SOURCE":"CUSTOMERS","RECORD_ID":"1003","INTERNAL_ID":37,"MATCH_KEY":"+NAME+DOB+EMAIL","MATCH_LEVEL_CODE":"RESOLVED","ERRULE_CODE":"SF1_PNAME_CSTAB","FIRST_SEEN_DT":"2024-10-25T17:39:00Z","LAST_SEEN_DT":"2024-10-25T17:39:00Z"}]},"RELATED_ENTITIES":[]} 3{"RESOLVED_ENTITY":{"ENTITY_ID":38,"ENTITY_NAME":"Edward Kusha","FEATURES":{"ADDRESS":[{"FEAT_DESC":"1304 Poppy Hills Dr Blacklick OH 43004","LIB_FEAT_ID":46,"USAGE_TYPE":"HOME","FEAT_DESC_VALUES":[{"FEAT_DESC":"1304 Poppy Hills Dr Blacklick OH 43004","LIB_FEAT_ID":46}]}],"DOB":[{"FEAT_DESC":"3/1/1970","LIB_FEAT_ID":45,"FEAT_DESC_VALUES":[{"FEAT_DESC":"3/1/1970","LIB_FEAT_ID":45}]}],"EMAIL":[{"FEAT_DESC":"Kusha123@hmail.com","LIB_FEAT_ID":48,"FEAT_DESC_VALUES":[{"FEAT_DESC":"Kusha123@hmail.com","LIB_FEAT_ID":48}]}],"NAME":[{"FEAT_DESC":"Edward Kusha","LIB_FEAT_ID":44,"USAGE_TYPE":"PRIMARY","FEAT_DESC_VALUES":[{"FEAT_DESC":"Edward Kusha","LIB_FEAT_ID":44}]}],"RECORD_TYPE":[{"FEAT_DESC":"PERSON","LIB_FEAT_ID":10,"FEAT_DESC_VALUES":[{"FEAT_DESC":"PERSON","LIB_FEAT_ID":10}]}],"SSN":[{"FEAT_DESC":"294-66-9999","LIB_FEAT_ID":47,"FEAT_DESC_VALUES":[{"FEAT_DESC":"294-66-9999","LIB_FEAT_ID":47}]}]},"RECORD_SUMMARY":[{"DATA_SOURCE":"CUSTOMERS","RECORD_COUNT":1}],"RECORDS":[{"DATA_SOURCE":"CUSTOMERS","RECORD_ID":"1009","INTERNAL_ID":38,"MATCH_KEY":"","MATCH_LEVEL_CODE":"","ERRULE_CODE":"","FIRST_SEEN_DT":"2024-10-25T17:39:00Z","LAST_SEEN_DT":"2024-10-25T17:39:00Z"}]},"RELATED_ENTITIES":[]}
- abstractmethod find_network_by_entity_id(entity_ids: ~typing.List[int], max_degrees: int, build_out_degrees: int, build_out_max_entities: int, flags: int = <SzEngineFlags.SZ_FIND_NETWORK_DEFAULT_FLAGS: 8589946880>) str [source]
The find_network_by_entity_id method retrieves a network of relationships among entities based on entity IDs.
This includes the requested entities, paths between them, and relations to other nearby entities. Returns a JSON document that identifies the path between the each set of search entities (if the path exists), and the information for the entities in the path.
- Parameters:
entity_ids (list(int)) – The entity IDs to find the network between.
max_degrees (int) – The maximum number of degrees in paths between search entities.
build_out_degrees (int) – The number of degrees of relationships to show around each search entity.
build_out_max_entities (int) – The maximum number of entities to return in the discovered network.
flags (int, optional) – The maximum number of entities to return in the discovered network. Defaults to SzEngineFlags.SZ_FIND_NETWORK_DEFAULT_FLAGS.
- Returns:
A JSON document.
- Return type:
str
Raises:
Example:
1from senzing import SzEngineFlags, SzError 2 3from . import sz_engine 4 5build_out_degrees = 1 6build_out_max_entities = 10 7entity_list = [1, 4] 8flags = SzEngineFlags.SZ_FIND_NETWORK_DEFAULT_FLAGS 9max_degrees = 2 10 11try: 12 result = sz_engine.find_network_by_entity_id( 13 entity_list, max_degrees, build_out_degrees, build_out_max_entities, flags 14 ) 15 print(f"\n{result}\n") 16except SzError as err: 17 print(f"\nERROR: {err}\n")
Output:
1// Output has been formatted for easier reading. 2 3{ 4 "ENTITY_PATHS": [ 5 { 6 "START_ENTITY_ID": 1, 7 "END_ENTITY_ID": 400018, 8 "ENTITIES": [] 9 } 10 ], 11 "ENTITY_NETWORK_LINKS": [ 12 { 13 "MIN_ENTITY_ID": 1, 14 "MAX_ENTITY_ID": 400015, 15 "MATCH_LEVEL_CODE": "POSSIBLY_SAME", 16 "MATCH_KEY": "+NAME+ADDRESS-DOB", 17 "ERRULE_CODE": "CNAME_CFF_DEXCL", 18 "IS_DISCLOSED": 0, 19 "IS_AMBIGUOUS": 0 20 }, 21 { 22 "MIN_ENTITY_ID": 1, 23 "MAX_ENTITY_ID": 400204, 24 "MATCH_LEVEL_CODE": "POSSIBLY_SAME", 25 "MATCH_KEY": "+NAME", 26 "ERRULE_CODE": "SNAME", 27 "IS_DISCLOSED": 0, 28 "IS_AMBIGUOUS": 0 29 }, 30 { 31 "MIN_ENTITY_ID": 1, 32 "MAX_ENTITY_ID": 400215, 33 "MATCH_LEVEL_CODE": "POSSIBLY_RELATED", 34 "MATCH_KEY": "+ADDRESS+SURNAME", 35 "ERRULE_CODE": "CFF_SURNAME", 36 "IS_DISCLOSED": 0, 37 "IS_AMBIGUOUS": 0 38 }, 39 { 40 "MIN_ENTITY_ID": 400002, 41 "MAX_ENTITY_ID": 400018, 42 "MATCH_LEVEL_CODE": "POSSIBLY_RELATED", 43 "MATCH_KEY": "+ADDRESS+EMAIL+SURNAME-DOB-SSN", 44 "ERRULE_CODE": "SF1", 45 "IS_DISCLOSED": 0, 46 "IS_AMBIGUOUS": 0 47 }, 48 { 49 "MIN_ENTITY_ID": 400002, 50 "MAX_ENTITY_ID": 400020, 51 "MATCH_LEVEL_CODE": "POSSIBLY_RELATED", 52 "MATCH_KEY": "+ADDRESS+EMAIL+PNAME-DOB", 53 "ERRULE_CODE": "SF1", 54 "IS_DISCLOSED": 0, 55 "IS_AMBIGUOUS": 0 56 }, 57 { 58 "MIN_ENTITY_ID": 400002, 59 "MAX_ENTITY_ID": 400022, 60 "MATCH_LEVEL_CODE": "POSSIBLY_RELATED", 61 "MATCH_KEY": "+ADDRESS+EMAIL+SURNAME-DOB-SSN", 62 "ERRULE_CODE": "SF1", 63 "IS_DISCLOSED": 0, 64 "IS_AMBIGUOUS": 0 65 }, 66 { 67 "MIN_ENTITY_ID": 400015, 68 "MAX_ENTITY_ID": 400204, 69 "MATCH_LEVEL_CODE": "POSSIBLY_SAME", 70 "MATCH_KEY": "+NAME", 71 "ERRULE_CODE": "SNAME", 72 "IS_DISCLOSED": 0, 73 "IS_AMBIGUOUS": 0 74 }, 75 { 76 "MIN_ENTITY_ID": 400018, 77 "MAX_ENTITY_ID": 400020, 78 "MATCH_LEVEL_CODE": "POSSIBLY_RELATED", 79 "MATCH_KEY": "+ADDRESS+EMAIL+SURNAME-DOB", 80 "ERRULE_CODE": "SF1", 81 "IS_DISCLOSED": 0, 82 "IS_AMBIGUOUS": 0 83 }, 84 { 85 "MIN_ENTITY_ID": 400018, 86 "MAX_ENTITY_ID": 400022, 87 "MATCH_LEVEL_CODE": "POSSIBLY_RELATED", 88 "MATCH_KEY": "+ADDRESS+EMAIL+SURNAME-DOB-SSN", 89 "ERRULE_CODE": "SF1", 90 "IS_DISCLOSED": 0, 91 "IS_AMBIGUOUS": 0 92 }, 93 { 94 "MIN_ENTITY_ID": 400020, 95 "MAX_ENTITY_ID": 400022, 96 "MATCH_LEVEL_CODE": "POSSIBLY_RELATED", 97 "MATCH_KEY": "+DOB+ADDRESS+EMAIL+SURNAME", 98 "ERRULE_CODE": "SF1", 99 "IS_DISCLOSED": 0, 100 "IS_AMBIGUOUS": 0 101 } 102 ], 103 "ENTITIES": [ 104 { 105 "RESOLVED_ENTITY": { 106 "ENTITY_ID": 1, 107 "ENTITY_NAME": "Robert Smith", 108 "RECORD_SUMMARY": [ 109 { 110 "DATA_SOURCE": "TEST", 111 "RECORD_COUNT": 1 112 }, 113 { 114 "DATA_SOURCE": "CUSTOMERS", 115 "RECORD_COUNT": 4 116 } 117 ] 118 } 119 }, 120 { 121 "RESOLVED_ENTITY": { 122 "ENTITY_ID": 400002, 123 "ENTITY_NAME": "Marie Kusha", 124 "RECORD_SUMMARY": [ 125 { 126 "DATA_SOURCE": "CUSTOMERS", 127 "RECORD_COUNT": 4 128 } 129 ] 130 } 131 }, 132 { 133 "RESOLVED_ENTITY": { 134 "ENTITY_ID": 400015, 135 "ENTITY_NAME": "Robert E Smith Sr", 136 "RECORD_SUMMARY": [ 137 { 138 "DATA_SOURCE": "CUSTOMERS", 139 "RECORD_COUNT": 1 140 }, 141 { 142 "DATA_SOURCE": "WATCHLIST", 143 "RECORD_COUNT": 1 144 } 145 ] 146 } 147 }, 148 { 149 "RESOLVED_ENTITY": { 150 "ENTITY_ID": 400018, 151 "ENTITY_NAME": "Eddie Kusha", 152 "RECORD_SUMMARY": [ 153 { 154 "DATA_SOURCE": "CUSTOMERS", 155 "RECORD_COUNT": 3 156 }, 157 { 158 "DATA_SOURCE": "WATCHLIST", 159 "RECORD_COUNT": 2 160 } 161 ] 162 } 163 }, 164 { 165 "RESOLVED_ENTITY": { 166 "ENTITY_ID": 400020, 167 "ENTITY_NAME": "Mark Kusha", 168 "RECORD_SUMMARY": [ 169 { 170 "DATA_SOURCE": "CUSTOMERS", 171 "RECORD_COUNT": 1 172 } 173 ] 174 } 175 }, 176 { 177 "RESOLVED_ENTITY": { 178 "ENTITY_ID": 400022, 179 "ENTITY_NAME": "Marsha Kusha", 180 "RECORD_SUMMARY": [ 181 { 182 "DATA_SOURCE": "CUSTOMERS", 183 "RECORD_COUNT": 1 184 }, 185 { 186 "DATA_SOURCE": "WATCHLIST", 187 "RECORD_COUNT": 1 188 } 189 ] 190 } 191 }, 192 { 193 "RESOLVED_ENTITY": { 194 "ENTITY_ID": 400204, 195 "ENTITY_NAME": "Robert Smith", 196 "RECORD_SUMMARY": [ 197 { 198 "DATA_SOURCE": "WATCHLIST", 199 "RECORD_COUNT": 1 200 } 201 ] 202 } 203 }, 204 { 205 "RESOLVED_ENTITY": { 206 "ENTITY_ID": 400215, 207 "ENTITY_NAME": "Patricia Smith", 208 "RECORD_SUMMARY": [ 209 { 210 "DATA_SOURCE": "WATCHLIST", 211 "RECORD_COUNT": 1 212 } 213 ] 214 } 215 } 216 ] 217}
- abstractmethod find_network_by_record_id(record_keys: ~typing.List[~typing.Tuple[str, str]], max_degrees: int, build_out_degrees: int, build_out_max_entities: int, flags: int = <SzEngineFlags.SZ_FIND_NETWORK_DEFAULT_FLAGS: 8589946880>) str [source]
The find_network_by_record_id method retrieves a network of relationships among entities based on record IDs.
This includes the requested entities, paths between them, and relations to other nearby entities. Returns a JSON document that identifies the path between the each set of search entities (if the path exists), and the information for the entities in the path.
- Parameters:
record_keys (list(tuple(str, str))) – The data source codes and record IDs to find the network between.
max_degrees (int) – The maximum number of degrees in paths between search entities.
build_out_degrees (int) – The number of degrees of relationships to show around each search entity.
build_out_max_entities (int) – The maximum number of entities to return in the discovered network.
flags (int, optional) – Flags used to control information returned. Defaults to SzEngineFlags.SZ_FIND_NETWORK_DEFAULT_FLAGS.
- Returns:
A JSON document.
- Return type:
str
Raises:
Example:
1from senzing import SzEngineFlags, SzError 2 3from . import sz_engine 4 5build_out_degrees = 1 6build_out_max_entities = 10 7flags = SzEngineFlags.SZ_FIND_NETWORK_DEFAULT_FLAGS 8max_degrees = 2 9max_entities = 10 10record_list = [("CUSTOMERS", "1001"), ("CUSTOMERS", "1009")] 11 12try: 13 result = sz_engine.find_network_by_record_id( 14 record_list, max_degrees, build_out_degrees, build_out_max_entities, flags 15 ) 16 print(f"\n{result}\n") 17except SzError as err: 18 print(f"\nERROR: {err}\n")
Output:
1// Output has been formatted for easier reading. 2 3{ 4 "ENTITY_PATHS": [ 5 { 6 "START_ENTITY_ID": 1, 7 "END_ENTITY_ID": 400018, 8 "ENTITIES": [] 9 } 10 ], 11 "ENTITY_NETWORK_LINKS": [ 12 { 13 "MIN_ENTITY_ID": 1, 14 "MAX_ENTITY_ID": 400015, 15 "MATCH_LEVEL_CODE": "POSSIBLY_SAME", 16 "MATCH_KEY": "+NAME+ADDRESS-DOB", 17 "ERRULE_CODE": "CNAME_CFF_DEXCL", 18 "IS_DISCLOSED": 0, 19 "IS_AMBIGUOUS": 0 20 }, 21 { 22 "MIN_ENTITY_ID": 1, 23 "MAX_ENTITY_ID": 400204, 24 "MATCH_LEVEL_CODE": "POSSIBLY_SAME", 25 "MATCH_KEY": "+NAME", 26 "ERRULE_CODE": "SNAME", 27 "IS_DISCLOSED": 0, 28 "IS_AMBIGUOUS": 0 29 }, 30 { 31 "MIN_ENTITY_ID": 1, 32 "MAX_ENTITY_ID": 400215, 33 "MATCH_LEVEL_CODE": "POSSIBLY_RELATED", 34 "MATCH_KEY": "+ADDRESS+SURNAME", 35 "ERRULE_CODE": "CFF_SURNAME", 36 "IS_DISCLOSED": 0, 37 "IS_AMBIGUOUS": 0 38 }, 39 { 40 "MIN_ENTITY_ID": 400002, 41 "MAX_ENTITY_ID": 400018, 42 "MATCH_LEVEL_CODE": "POSSIBLY_RELATED", 43 "MATCH_KEY": "+ADDRESS+EMAIL+SURNAME-DOB-SSN", 44 "ERRULE_CODE": "SF1", 45 "IS_DISCLOSED": 0, 46 "IS_AMBIGUOUS": 0 47 }, 48 { 49 "MIN_ENTITY_ID": 400002, 50 "MAX_ENTITY_ID": 400020, 51 "MATCH_LEVEL_CODE": "POSSIBLY_RELATED", 52 "MATCH_KEY": "+ADDRESS+EMAIL+PNAME-DOB", 53 "ERRULE_CODE": "SF1", 54 "IS_DISCLOSED": 0, 55 "IS_AMBIGUOUS": 0 56 }, 57 { 58 "MIN_ENTITY_ID": 400002, 59 "MAX_ENTITY_ID": 400022, 60 "MATCH_LEVEL_CODE": "POSSIBLY_RELATED", 61 "MATCH_KEY": "+ADDRESS+EMAIL+SURNAME-DOB-SSN", 62 "ERRULE_CODE": "SF1", 63 "IS_DISCLOSED": 0, 64 "IS_AMBIGUOUS": 0 65 }, 66 { 67 "MIN_ENTITY_ID": 400015, 68 "MAX_ENTITY_ID": 400204, 69 "MATCH_LEVEL_CODE": "POSSIBLY_SAME", 70 "MATCH_KEY": "+NAME", 71 "ERRULE_CODE": "SNAME", 72 "IS_DISCLOSED": 0, 73 "IS_AMBIGUOUS": 0 74 }, 75 { 76 "MIN_ENTITY_ID": 400018, 77 "MAX_ENTITY_ID": 400020, 78 "MATCH_LEVEL_CODE": "POSSIBLY_RELATED", 79 "MATCH_KEY": "+ADDRESS+EMAIL+SURNAME-DOB", 80 "ERRULE_CODE": "SF1", 81 "IS_DISCLOSED": 0, 82 "IS_AMBIGUOUS": 0 83 }, 84 { 85 "MIN_ENTITY_ID": 400018, 86 "MAX_ENTITY_ID": 400022, 87 "MATCH_LEVEL_CODE": "POSSIBLY_RELATED", 88 "MATCH_KEY": "+ADDRESS+EMAIL+SURNAME-DOB-SSN", 89 "ERRULE_CODE": "SF1", 90 "IS_DISCLOSED": 0, 91 "IS_AMBIGUOUS": 0 92 }, 93 { 94 "MIN_ENTITY_ID": 400020, 95 "MAX_ENTITY_ID": 400022, 96 "MATCH_LEVEL_CODE": "POSSIBLY_RELATED", 97 "MATCH_KEY": "+DOB+ADDRESS+EMAIL+SURNAME", 98 "ERRULE_CODE": "SF1", 99 "IS_DISCLOSED": 0, 100 "IS_AMBIGUOUS": 0 101 } 102 ], 103 "ENTITIES": [ 104 { 105 "RESOLVED_ENTITY": { 106 "ENTITY_ID": 1, 107 "ENTITY_NAME": "Robert Smith", 108 "RECORD_SUMMARY": [ 109 { 110 "DATA_SOURCE": "TEST", 111 "RECORD_COUNT": 1 112 }, 113 { 114 "DATA_SOURCE": "CUSTOMERS", 115 "RECORD_COUNT": 4 116 } 117 ] 118 } 119 }, 120 { 121 "RESOLVED_ENTITY": { 122 "ENTITY_ID": 400002, 123 "ENTITY_NAME": "Marie Kusha", 124 "RECORD_SUMMARY": [ 125 { 126 "DATA_SOURCE": "CUSTOMERS", 127 "RECORD_COUNT": 4 128 } 129 ] 130 } 131 }, 132 { 133 "RESOLVED_ENTITY": { 134 "ENTITY_ID": 400015, 135 "ENTITY_NAME": "Robert E Smith Sr", 136 "RECORD_SUMMARY": [ 137 { 138 "DATA_SOURCE": "CUSTOMERS", 139 "RECORD_COUNT": 1 140 }, 141 { 142 "DATA_SOURCE": "WATCHLIST", 143 "RECORD_COUNT": 1 144 } 145 ] 146 } 147 }, 148 { 149 "RESOLVED_ENTITY": { 150 "ENTITY_ID": 400018, 151 "ENTITY_NAME": "Eddie Kusha", 152 "RECORD_SUMMARY": [ 153 { 154 "DATA_SOURCE": "CUSTOMERS", 155 "RECORD_COUNT": 3 156 }, 157 { 158 "DATA_SOURCE": "WATCHLIST", 159 "RECORD_COUNT": 2 160 } 161 ] 162 } 163 }, 164 { 165 "RESOLVED_ENTITY": { 166 "ENTITY_ID": 400020, 167 "ENTITY_NAME": "Mark Kusha", 168 "RECORD_SUMMARY": [ 169 { 170 "DATA_SOURCE": "CUSTOMERS", 171 "RECORD_COUNT": 1 172 } 173 ] 174 } 175 }, 176 { 177 "RESOLVED_ENTITY": { 178 "ENTITY_ID": 400022, 179 "ENTITY_NAME": "Marsha Kusha", 180 "RECORD_SUMMARY": [ 181 { 182 "DATA_SOURCE": "CUSTOMERS", 183 "RECORD_COUNT": 1 184 }, 185 { 186 "DATA_SOURCE": "WATCHLIST", 187 "RECORD_COUNT": 1 188 } 189 ] 190 } 191 }, 192 { 193 "RESOLVED_ENTITY": { 194 "ENTITY_ID": 400204, 195 "ENTITY_NAME": "Robert Smith", 196 "RECORD_SUMMARY": [ 197 { 198 "DATA_SOURCE": "WATCHLIST", 199 "RECORD_COUNT": 1 200 } 201 ] 202 } 203 }, 204 { 205 "RESOLVED_ENTITY": { 206 "ENTITY_ID": 400215, 207 "ENTITY_NAME": "Patricia Smith", 208 "RECORD_SUMMARY": [ 209 { 210 "DATA_SOURCE": "WATCHLIST", 211 "RECORD_COUNT": 1 212 } 213 ] 214 } 215 } 216 ] 217}
- abstractmethod find_path_by_entity_id(start_entity_id: int, end_entity_id: int, max_degrees: int, avoid_entity_ids: ~typing.List[int] | None = None, required_data_sources: ~typing.List[str] | None = None, flags: int = <SzEngineFlags.SZ_FIND_PATH_DEFAULT_FLAGS: 1073754112>) str [source]
The find_path_by_entity_id method searches for the shortest relationship path between two entities based on entity IDs.
It finds the most efficient relationship between two entities path based on the parameters and returns a JSON document with an ENTITY_PATHS section that details the path between the entities. The ENTITIES sections details information on the entities. Paths are found using known relationships with other entities. Paths are found using known relationships with other entities.
- Parameters:
start_entity_id (int) – The entity ID for the starting entity of the search path.
end_entity_id (int) – The entity ID for the ending entity of the search path.
max_degrees (int) – The maximum number of degrees in paths between search entities.
avoid_entity_ids (list(int), optional) – The entity IDs to avoid when finding a path.
required_data_sources (list(str), optional) – The data source code(s) that must be in a path.
flags (int, optional) – Flags used to control information returned. Defaults to SzEngineFlags.SZ_FIND_PATH_DEFAULT_FLAGS.
- Returns:
A JSON document with an ENTITY_PATHS section that details the path between the entities.
- Return type:
str
Raises:
Example:
1from typing import List 2 3from senzing import SzEngineFlags, SzError 4 5from . import sz_engine 6 7avoid_entity_ids: List[int] = [] 8end_entity_id = 400215 9flags = SzEngineFlags.SZ_FIND_PATH_DEFAULT_FLAGS 10max_degrees = 2 11required_data_sources: List[str] = [] 12start_entity_id = 1 13 14try: 15 result = sz_engine.find_path_by_entity_id( 16 start_entity_id, 17 end_entity_id, 18 max_degrees, 19 avoid_entity_ids, 20 required_data_sources, 21 flags, 22 ) 23 print(f"\n{result}\n") 24except SzError as err: 25 print(f"\nERROR: {err}\n")
Output:
1// Output has been formatted for easier reading. 2 3{ 4 "ENTITY_PATHS": [ 5 { 6 "START_ENTITY_ID": 1, 7 "END_ENTITY_ID": 400215, 8 "ENTITIES": [ 9 1, 10 400215 11 ] 12 } 13 ], 14 "ENTITY_PATH_LINKS": [ 15 { 16 "MIN_ENTITY_ID": 1, 17 "MAX_ENTITY_ID": 400215, 18 "MATCH_LEVEL_CODE": "POSSIBLY_RELATED", 19 "MATCH_KEY": "+ADDRESS+SURNAME", 20 "ERRULE_CODE": "CFF_SURNAME", 21 "IS_DISCLOSED": 0, 22 "IS_AMBIGUOUS": 0 23 } 24 ], 25 "ENTITIES": [ 26 { 27 "RESOLVED_ENTITY": { 28 "ENTITY_ID": 1, 29 "ENTITY_NAME": "Robert Smith", 30 "RECORD_SUMMARY": [ 31 { 32 "DATA_SOURCE": "TEST", 33 "RECORD_COUNT": 1 34 }, 35 { 36 "DATA_SOURCE": "CUSTOMERS", 37 "RECORD_COUNT": 4 38 } 39 ] 40 } 41 }, 42 { 43 "RESOLVED_ENTITY": { 44 "ENTITY_ID": 400215, 45 "ENTITY_NAME": "Patricia Smith", 46 "RECORD_SUMMARY": [ 47 { 48 "DATA_SOURCE": "WATCHLIST", 49 "RECORD_COUNT": 1 50 } 51 ] 52 } 53 } 54 ] 55}
- abstractmethod find_path_by_record_id(start_data_source_code: str, start_record_id: str, end_data_source_code: str, end_record_id: str, max_degrees: int, avoid_record_keys: ~typing.List[~typing.Tuple[str, str]] | None = None, required_data_sources: ~typing.List[str] | None = None, flags: int = <SzEngineFlags.SZ_FIND_PATH_DEFAULT_FLAGS: 1073754112>) str [source]
The find_path_by_record_id method searches for the shortest relationship path between two entities based on record IDs.
It finds the most efficient relationship between two entities path based on the parameters by RECORD_ID values and returns a JSON document with an ENTITY_PATHS section that details the path between the entities. The ENTITIES sections details information on the entities. Paths are found using known relationships with other entities. The entities are identified by starting and ending records.
- Parameters:
start_data_source_code (str) – Identifies the provenance of the record for the starting entity of the search path.
start_record_id (str) – The unique identifier within the records of the same data source for the starting entity of the search path.
end_data_source_code (str) – Identifies the provenance of the record for the ending entity of the search path.
end_record_id (str) – The unique identifier within the records of the same data source for the ending entity of the search path.
max_degrees (int) – The maximum number of degrees in paths between search entities.
avoid_record_keys (list(tuple(str, str)), optional) – The data source codes and record IDs to avoid when finding a path.
required_data_sources (list(str), optional) – The data source code(s) that must be in a path.
flags (int, optional) – Flags used to control information returned. Defaults to SzEngineFlags.SZ_FIND_PATH_DEFAULT_FLAGS.
- Returns:
A JSON document.
- Return type:
str
Raises:
Example:
1from typing import List, Tuple 2 3from senzing import SzEngineFlags, SzError 4 5from . import sz_engine 6 7avoid_record_keys: List[Tuple[str, str]] = [] 8end_data_source_code = "WATCHLIST" 9end_record_id = "1007" 10flags = SzEngineFlags.SZ_FIND_PATH_DEFAULT_FLAGS 11max_degrees = 2 12required_data_sources: List[str] = [] 13start_data_source_code = "CUSTOMERS" 14start_record_id = "1001" 15 16try: 17 result = sz_engine.find_path_by_record_id( 18 start_data_source_code, 19 start_record_id, 20 end_data_source_code, 21 end_record_id, 22 max_degrees, 23 avoid_record_keys, 24 required_data_sources, 25 flags, 26 ) 27 print(f"\n{result}\n") 28except SzError as err: 29 print(f"\nERROR: {err}\n")
Output:
1// Output has been formatted for easier reading. 2 3{ 4 "ENTITY_PATHS": [ 5 { 6 "START_ENTITY_ID": 1, 7 "END_ENTITY_ID": 400215, 8 "ENTITIES": [ 9 1, 10 400215 11 ] 12 } 13 ], 14 "ENTITY_PATH_LINKS": [ 15 { 16 "MIN_ENTITY_ID": 1, 17 "MAX_ENTITY_ID": 400215, 18 "MATCH_LEVEL_CODE": "POSSIBLY_RELATED", 19 "MATCH_KEY": "+ADDRESS+SURNAME", 20 "ERRULE_CODE": "CFF_SURNAME", 21 "IS_DISCLOSED": 0, 22 "IS_AMBIGUOUS": 0 23 } 24 ], 25 "ENTITIES": [ 26 { 27 "RESOLVED_ENTITY": { 28 "ENTITY_ID": 1, 29 "ENTITY_NAME": "Robert Smith", 30 "RECORD_SUMMARY": [ 31 { 32 "DATA_SOURCE": "TEST", 33 "RECORD_COUNT": 1 34 }, 35 { 36 "DATA_SOURCE": "CUSTOMERS", 37 "RECORD_COUNT": 4 38 } 39 ] 40 } 41 }, 42 { 43 "RESOLVED_ENTITY": { 44 "ENTITY_ID": 400215, 45 "ENTITY_NAME": "Patricia Smith", 46 "RECORD_SUMMARY": [ 47 { 48 "DATA_SOURCE": "WATCHLIST", 49 "RECORD_COUNT": 1 50 } 51 ] 52 } 53 } 54 ] 55}
- abstractmethod get_active_config_id() int [source]
The get_active_config_id method gets the currently active configuration ID.
- Returns:
The identifier of the active Senzing Engine configuration.
- Return type:
int
Raises:
Example:
1from senzing import SzError 2 3from . import sz_engine 4 5try: 6 result = sz_engine.get_active_config_id() 7 print(f"\n{result}\n") 8except SzError as err: 9 print(f"\nERROR: {err}\n")
Output:
14030462317
- abstractmethod get_entity_by_entity_id(entity_id: int, flags: int = <SzEngineFlags.SZ_ENTITY_DEFAULT_FLAGS: 3734464>) str [source]
The get_entity_by_entity_id method retrieves information about an entity based on entity ID.
- Parameters:
entity_id (int) – The unique identifier of an entity.
flags (int, optional) – Flags used to control information returned. Defaults to SzEngineFlags.SZ_ENTITY_DEFAULT_FLAGS.
- Returns:
A JSON document.
- Return type:
str
Raises:
Example:
1from senzing import SzEngineFlags, SzError 2 3from . import sz_engine 4 5entity_id = 1 6flags = SzEngineFlags.SZ_ENTITY_DEFAULT_FLAGS 7 8try: 9 result = sz_engine.get_entity_by_entity_id(entity_id, flags) 10 print(f"\n{result}\n") 11except SzError as err: 12 print(f"\nERROR: {err}\n")
Output:
1// Output has been formatted for easier reading. 2 3{ 4 "RESOLVED_ENTITY": { 5 "ENTITY_ID": 1, 6 "ENTITY_NAME": "Robert Smith", 7 "FEATURES": { 8 "ADDRESS": [ 9 { 10 "FEAT_DESC": "1515 Adela Lane Las Vegas NV 89111", 11 "LIB_FEAT_ID": 200059, 12 "USAGE_TYPE": "HOME", 13 "FEAT_DESC_VALUES": [ 14 { 15 "FEAT_DESC": "1515 Adela Lane Las Vegas NV 89111", 16 "LIB_FEAT_ID": 200059 17 }, 18 { 19 "FEAT_DESC": "1515 Adela Ln Las Vegas NV 89132", 20 "LIB_FEAT_ID": 200046 21 } 22 ] 23 }, 24 { 25 "FEAT_DESC": "123 Main Street, Las Vegas NV 89132", 26 "LIB_FEAT_ID": 3, 27 "USAGE_TYPE": "MAILING", 28 "FEAT_DESC_VALUES": [ 29 { 30 "FEAT_DESC": "123 Main Street, Las Vegas NV 89132", 31 "LIB_FEAT_ID": 3 32 } 33 ] 34 } 35 ], 36 "DOB": [ 37 { 38 "FEAT_DESC": "11/12/1979", 39 "LIB_FEAT_ID": 200045, 40 "FEAT_DESC_VALUES": [ 41 { 42 "FEAT_DESC": "11/12/1979", 43 "LIB_FEAT_ID": 200045 44 } 45 ] 46 }, 47 { 48 "FEAT_DESC": "12/11/1978", 49 "LIB_FEAT_ID": 2, 50 "FEAT_DESC_VALUES": [ 51 { 52 "FEAT_DESC": "12/11/1978", 53 "LIB_FEAT_ID": 2 54 }, 55 { 56 "FEAT_DESC": "11/12/1978", 57 "LIB_FEAT_ID": 200058 58 } 59 ] 60 } 61 ], 62 "EMAIL": [ 63 { 64 "FEAT_DESC": "bsmith@work.com", 65 "LIB_FEAT_ID": 5, 66 "FEAT_DESC_VALUES": [ 67 { 68 "FEAT_DESC": "bsmith@work.com", 69 "LIB_FEAT_ID": 5 70 } 71 ] 72 } 73 ], 74 "NAME": [ 75 { 76 "FEAT_DESC": "B Smith", 77 "LIB_FEAT_ID": 200044, 78 "USAGE_TYPE": "PRIMARY", 79 "FEAT_DESC_VALUES": [ 80 { 81 "FEAT_DESC": "B Smith", 82 "LIB_FEAT_ID": 200044 83 } 84 ] 85 }, 86 { 87 "FEAT_DESC": "Robert Smith", 88 "LIB_FEAT_ID": 1, 89 "USAGE_TYPE": "PRIMARY", 90 "FEAT_DESC_VALUES": [ 91 { 92 "FEAT_DESC": "Robert Smith", 93 "LIB_FEAT_ID": 1 94 }, 95 { 96 "FEAT_DESC": "Bob J Smith", 97 "LIB_FEAT_ID": 200001 98 }, 99 { 100 "FEAT_DESC": "Bob Smith", 101 "LIB_FEAT_ID": 200057 102 } 103 ] 104 } 105 ], 106 "PHONE": [ 107 { 108 "FEAT_DESC": "702-919-1300", 109 "LIB_FEAT_ID": 4, 110 "USAGE_TYPE": "HOME", 111 "FEAT_DESC_VALUES": [ 112 { 113 "FEAT_DESC": "702-919-1300", 114 "LIB_FEAT_ID": 4 115 } 116 ] 117 }, 118 { 119 "FEAT_DESC": "702-919-1300", 120 "LIB_FEAT_ID": 4, 121 "USAGE_TYPE": "MOBILE", 122 "FEAT_DESC_VALUES": [ 123 { 124 "FEAT_DESC": "702-919-1300", 125 "LIB_FEAT_ID": 4 126 } 127 ] 128 } 129 ], 130 "RECORD_TYPE": [ 131 { 132 "FEAT_DESC": "PERSON", 133 "LIB_FEAT_ID": 10, 134 "FEAT_DESC_VALUES": [ 135 { 136 "FEAT_DESC": "PERSON", 137 "LIB_FEAT_ID": 10 138 } 139 ] 140 } 141 ] 142 }, 143 "RECORD_SUMMARY": [ 144 { 145 "DATA_SOURCE": "TEST", 146 "RECORD_COUNT": 1 147 }, 148 { 149 "DATA_SOURCE": "CUSTOMERS", 150 "RECORD_COUNT": 4 151 } 152 ], 153 "RECORDS": [ 154 { 155 "DATA_SOURCE": "CUSTOMERS", 156 "RECORD_ID": "1004", 157 "INTERNAL_ID": 400010, 158 "MATCH_KEY": "", 159 "MATCH_LEVEL_CODE": "", 160 "ERRULE_CODE": "", 161 "FIRST_SEEN_DT": "2025-05-20T16:04:03Z", 162 "LAST_SEEN_DT": "2025-05-20T16:17:16Z" 163 }, 164 { 165 "DATA_SOURCE": "TEST", 166 "RECORD_ID": "1", 167 "INTERNAL_ID": 1, 168 "MATCH_KEY": "+NAME+DOB+PHONE+EMAIL", 169 "MATCH_LEVEL_CODE": "RESOLVED", 170 "ERRULE_CODE": "SF1_SNAME_CFF_CSTAB", 171 "FIRST_SEEN_DT": "2025-05-20T14:26:26Z", 172 "LAST_SEEN_DT": "2025-05-20T14:33:12Z" 173 }, 174 { 175 "DATA_SOURCE": "CUSTOMERS", 176 "RECORD_ID": "1003", 177 "INTERNAL_ID": 400001, 178 "MATCH_KEY": "+NAME+DOB+EMAIL", 179 "MATCH_LEVEL_CODE": "RESOLVED", 180 "ERRULE_CODE": "SF1_PNAME_CSTAB", 181 "FIRST_SEEN_DT": "2025-05-20T16:04:03Z", 182 "LAST_SEEN_DT": "2025-05-20T16:17:16Z" 183 }, 184 { 185 "DATA_SOURCE": "CUSTOMERS", 186 "RECORD_ID": "1002", 187 "INTERNAL_ID": 400011, 188 "MATCH_KEY": "+NAME+DOB+ADDRESS", 189 "MATCH_LEVEL_CODE": "RESOLVED", 190 "ERRULE_CODE": "CNAME_CFF_CEXCL", 191 "FIRST_SEEN_DT": "2025-05-20T16:04:03Z", 192 "LAST_SEEN_DT": "2025-05-20T16:17:16Z" 193 }, 194 { 195 "DATA_SOURCE": "CUSTOMERS", 196 "RECORD_ID": "1001", 197 "INTERNAL_ID": 500001, 198 "MATCH_KEY": "+NAME+DOB+ADDRESS+PHONE+EMAIL", 199 "MATCH_LEVEL_CODE": "RESOLVED", 200 "ERRULE_CODE": "SF1_SNAME_CFF_CSTAB", 201 "FIRST_SEEN_DT": "2025-05-20T16:17:16Z", 202 "LAST_SEEN_DT": "2025-05-20T16:17:16Z" 203 } 204 ] 205 }, 206 "RELATED_ENTITIES": [ 207 { 208 "ENTITY_ID": 400015, 209 "MATCH_LEVEL_CODE": "POSSIBLY_SAME", 210 "MATCH_KEY": "+NAME+ADDRESS-DOB", 211 "ERRULE_CODE": "CNAME_CFF_DEXCL", 212 "IS_DISCLOSED": 0, 213 "IS_AMBIGUOUS": 0, 214 "ENTITY_NAME": "Robert E Smith Sr", 215 "RECORD_SUMMARY": [ 216 { 217 "DATA_SOURCE": "CUSTOMERS", 218 "RECORD_COUNT": 1 219 }, 220 { 221 "DATA_SOURCE": "WATCHLIST", 222 "RECORD_COUNT": 1 223 } 224 ] 225 }, 226 { 227 "ENTITY_ID": 400204, 228 "MATCH_LEVEL_CODE": "POSSIBLY_SAME", 229 "MATCH_KEY": "+NAME", 230 "ERRULE_CODE": "SNAME", 231 "IS_DISCLOSED": 0, 232 "IS_AMBIGUOUS": 0, 233 "ENTITY_NAME": "Robert Smith", 234 "RECORD_SUMMARY": [ 235 { 236 "DATA_SOURCE": "WATCHLIST", 237 "RECORD_COUNT": 1 238 } 239 ] 240 }, 241 { 242 "ENTITY_ID": 400215, 243 "MATCH_LEVEL_CODE": "POSSIBLY_RELATED", 244 "MATCH_KEY": "+SURNAME+ADDRESS", 245 "ERRULE_CODE": "CFF_SURNAME", 246 "IS_DISCLOSED": 0, 247 "IS_AMBIGUOUS": 0, 248 "ENTITY_NAME": "Patricia Smith", 249 "RECORD_SUMMARY": [ 250 { 251 "DATA_SOURCE": "WATCHLIST", 252 "RECORD_COUNT": 1 253 } 254 ] 255 } 256 ] 257}
- abstractmethod get_entity_by_record_id(data_source_code: str, record_id: str, flags: int = <SzEngineFlags.SZ_ENTITY_DEFAULT_FLAGS: 3734464>) str [source]
The get_entity_by_record_id method retrieves information about an entity based on record ID.
- Parameters:
data_source_code (str) – Identifies the provenance of the data.
record_id (str) – The unique identifier within the records of the same data source.
flags (int, optional) – Flags used to control information returned. Defaults to SzEngineFlags.SZ_ENTITY_DEFAULT_FLAGS.
- Returns:
A JSON document.
- Return type:
str
Raises:
Example:
1from senzing import SzEngineFlags, SzError 2 3from . import sz_engine 4 5data_source_code = "CUSTOMERS" 6flags = SzEngineFlags.SZ_ENTITY_DEFAULT_FLAGS 7record_id = "1001" 8 9try: 10 result = sz_engine.get_entity_by_record_id(data_source_code, record_id, flags) 11 print(f"\n{result}\n") 12except SzError as err: 13 print(f"\nERROR: {err}\n")
Output:
1// Output has been formatted for easier reading. 2 3{ 4 "RESOLVED_ENTITY": { 5 "ENTITY_ID": 1, 6 "ENTITY_NAME": "Robert Smith", 7 "FEATURES": { 8 "ADDRESS": [ 9 { 10 "FEAT_DESC": "1515 Adela Lane Las Vegas NV 89111", 11 "LIB_FEAT_ID": 200059, 12 "USAGE_TYPE": "HOME", 13 "FEAT_DESC_VALUES": [ 14 { 15 "FEAT_DESC": "1515 Adela Lane Las Vegas NV 89111", 16 "LIB_FEAT_ID": 200059 17 }, 18 { 19 "FEAT_DESC": "1515 Adela Ln Las Vegas NV 89132", 20 "LIB_FEAT_ID": 200046 21 } 22 ] 23 }, 24 { 25 "FEAT_DESC": "123 Main Street, Las Vegas NV 89132", 26 "LIB_FEAT_ID": 3, 27 "USAGE_TYPE": "MAILING", 28 "FEAT_DESC_VALUES": [ 29 { 30 "FEAT_DESC": "123 Main Street, Las Vegas NV 89132", 31 "LIB_FEAT_ID": 3 32 } 33 ] 34 } 35 ], 36 "DOB": [ 37 { 38 "FEAT_DESC": "11/12/1979", 39 "LIB_FEAT_ID": 200045, 40 "FEAT_DESC_VALUES": [ 41 { 42 "FEAT_DESC": "11/12/1979", 43 "LIB_FEAT_ID": 200045 44 } 45 ] 46 }, 47 { 48 "FEAT_DESC": "12/11/1978", 49 "LIB_FEAT_ID": 2, 50 "FEAT_DESC_VALUES": [ 51 { 52 "FEAT_DESC": "12/11/1978", 53 "LIB_FEAT_ID": 2 54 }, 55 { 56 "FEAT_DESC": "11/12/1978", 57 "LIB_FEAT_ID": 200058 58 } 59 ] 60 } 61 ], 62 "EMAIL": [ 63 { 64 "FEAT_DESC": "bsmith@work.com", 65 "LIB_FEAT_ID": 5, 66 "FEAT_DESC_VALUES": [ 67 { 68 "FEAT_DESC": "bsmith@work.com", 69 "LIB_FEAT_ID": 5 70 } 71 ] 72 } 73 ], 74 "NAME": [ 75 { 76 "FEAT_DESC": "B Smith", 77 "LIB_FEAT_ID": 200044, 78 "USAGE_TYPE": "PRIMARY", 79 "FEAT_DESC_VALUES": [ 80 { 81 "FEAT_DESC": "B Smith", 82 "LIB_FEAT_ID": 200044 83 } 84 ] 85 }, 86 { 87 "FEAT_DESC": "Robert Smith", 88 "LIB_FEAT_ID": 1, 89 "USAGE_TYPE": "PRIMARY", 90 "FEAT_DESC_VALUES": [ 91 { 92 "FEAT_DESC": "Robert Smith", 93 "LIB_FEAT_ID": 1 94 }, 95 { 96 "FEAT_DESC": "Bob J Smith", 97 "LIB_FEAT_ID": 200001 98 }, 99 { 100 "FEAT_DESC": "Bob Smith", 101 "LIB_FEAT_ID": 200057 102 } 103 ] 104 } 105 ], 106 "PHONE": [ 107 { 108 "FEAT_DESC": "702-919-1300", 109 "LIB_FEAT_ID": 4, 110 "USAGE_TYPE": "HOME", 111 "FEAT_DESC_VALUES": [ 112 { 113 "FEAT_DESC": "702-919-1300", 114 "LIB_FEAT_ID": 4 115 } 116 ] 117 }, 118 { 119 "FEAT_DESC": "702-919-1300", 120 "LIB_FEAT_ID": 4, 121 "USAGE_TYPE": "MOBILE", 122 "FEAT_DESC_VALUES": [ 123 { 124 "FEAT_DESC": "702-919-1300", 125 "LIB_FEAT_ID": 4 126 } 127 ] 128 } 129 ], 130 "RECORD_TYPE": [ 131 { 132 "FEAT_DESC": "PERSON", 133 "LIB_FEAT_ID": 10, 134 "FEAT_DESC_VALUES": [ 135 { 136 "FEAT_DESC": "PERSON", 137 "LIB_FEAT_ID": 10 138 } 139 ] 140 } 141 ] 142 }, 143 "RECORD_SUMMARY": [ 144 { 145 "DATA_SOURCE": "TEST", 146 "RECORD_COUNT": 1 147 }, 148 { 149 "DATA_SOURCE": "CUSTOMERS", 150 "RECORD_COUNT": 4 151 } 152 ], 153 "RECORDS": [ 154 { 155 "DATA_SOURCE": "CUSTOMERS", 156 "RECORD_ID": "1004", 157 "INTERNAL_ID": 400010, 158 "MATCH_KEY": "", 159 "MATCH_LEVEL_CODE": "", 160 "ERRULE_CODE": "", 161 "FIRST_SEEN_DT": "2025-05-20T16:04:03Z", 162 "LAST_SEEN_DT": "2025-05-20T16:17:16Z" 163 }, 164 { 165 "DATA_SOURCE": "TEST", 166 "RECORD_ID": "1", 167 "INTERNAL_ID": 1, 168 "MATCH_KEY": "+NAME+DOB+PHONE+EMAIL", 169 "MATCH_LEVEL_CODE": "RESOLVED", 170 "ERRULE_CODE": "SF1_SNAME_CFF_CSTAB", 171 "FIRST_SEEN_DT": "2025-05-20T14:26:26Z", 172 "LAST_SEEN_DT": "2025-05-20T14:33:12Z" 173 }, 174 { 175 "DATA_SOURCE": "CUSTOMERS", 176 "RECORD_ID": "1003", 177 "INTERNAL_ID": 400001, 178 "MATCH_KEY": "+NAME+DOB+EMAIL", 179 "MATCH_LEVEL_CODE": "RESOLVED", 180 "ERRULE_CODE": "SF1_PNAME_CSTAB", 181 "FIRST_SEEN_DT": "2025-05-20T16:04:03Z", 182 "LAST_SEEN_DT": "2025-05-20T16:17:16Z" 183 }, 184 { 185 "DATA_SOURCE": "CUSTOMERS", 186 "RECORD_ID": "1002", 187 "INTERNAL_ID": 400011, 188 "MATCH_KEY": "+NAME+DOB+ADDRESS", 189 "MATCH_LEVEL_CODE": "RESOLVED", 190 "ERRULE_CODE": "CNAME_CFF_CEXCL", 191 "FIRST_SEEN_DT": "2025-05-20T16:04:03Z", 192 "LAST_SEEN_DT": "2025-05-20T16:17:16Z" 193 }, 194 { 195 "DATA_SOURCE": "CUSTOMERS", 196 "RECORD_ID": "1001", 197 "INTERNAL_ID": 500001, 198 "MATCH_KEY": "+NAME+DOB+ADDRESS+PHONE+EMAIL", 199 "MATCH_LEVEL_CODE": "RESOLVED", 200 "ERRULE_CODE": "SF1_SNAME_CFF_CSTAB", 201 "FIRST_SEEN_DT": "2025-05-20T16:17:16Z", 202 "LAST_SEEN_DT": "2025-05-20T16:17:16Z" 203 } 204 ] 205 }, 206 "RELATED_ENTITIES": [ 207 { 208 "ENTITY_ID": 400015, 209 "MATCH_LEVEL_CODE": "POSSIBLY_SAME", 210 "MATCH_KEY": "+NAME+ADDRESS-DOB", 211 "ERRULE_CODE": "CNAME_CFF_DEXCL", 212 "IS_DISCLOSED": 0, 213 "IS_AMBIGUOUS": 0, 214 "ENTITY_NAME": "Robert E Smith Sr", 215 "RECORD_SUMMARY": [ 216 { 217 "DATA_SOURCE": "CUSTOMERS", 218 "RECORD_COUNT": 1 219 }, 220 { 221 "DATA_SOURCE": "WATCHLIST", 222 "RECORD_COUNT": 1 223 } 224 ] 225 }, 226 { 227 "ENTITY_ID": 400204, 228 "MATCH_LEVEL_CODE": "POSSIBLY_SAME", 229 "MATCH_KEY": "+NAME", 230 "ERRULE_CODE": "SNAME", 231 "IS_DISCLOSED": 0, 232 "IS_AMBIGUOUS": 0, 233 "ENTITY_NAME": "Robert Smith", 234 "RECORD_SUMMARY": [ 235 { 236 "DATA_SOURCE": "WATCHLIST", 237 "RECORD_COUNT": 1 238 } 239 ] 240 }, 241 { 242 "ENTITY_ID": 400215, 243 "MATCH_LEVEL_CODE": "POSSIBLY_RELATED", 244 "MATCH_KEY": "+SURNAME+ADDRESS", 245 "ERRULE_CODE": "CFF_SURNAME", 246 "IS_DISCLOSED": 0, 247 "IS_AMBIGUOUS": 0, 248 "ENTITY_NAME": "Patricia Smith", 249 "RECORD_SUMMARY": [ 250 { 251 "DATA_SOURCE": "WATCHLIST", 252 "RECORD_COUNT": 1 253 } 254 ] 255 } 256 ] 257}
- abstractmethod get_record(data_source_code: str, record_id: str, flags: int = <SzEngineFlags.SZ_ENTITY_INCLUDE_RECORD_JSON_DATA: 65536>) str [source]
The get_record method retrieves information about a record.
Can be called as many times as desired and from multiple threads at the same time.
- Parameters:
data_source_code (str) – Identifies the provenance of the data.
record_id (str) – The unique identifier within the records of the same data source.
flags (int, optional) – Flags used to control information returned. Defaults to SzEngineFlags.SZ_RECORD_DEFAULT_FLAGS.
- Returns:
A JSON document of a single record.
- Return type:
str
Raises:
Example:
1from senzing import SzEngineFlags, SzError 2 3from . import sz_engine 4 5data_source_code = "CUSTOMERS" 6flags = SzEngineFlags.SZ_RECORD_DEFAULT_FLAGS 7record_id = "1001" 8 9try: 10 result = sz_engine.get_record(data_source_code, record_id, flags) 11 print(f"\n{result}\n") 12except SzError as err: 13 print(f"\nERROR: {err}\n")
Output:
1// Output has been formatted for easier reading. 2 3{ 4 "DATA_SOURCE": "CUSTOMERS", 5 "RECORD_ID": "1001", 6 "JSON_DATA": { 7 "DATA_SOURCE": "CUSTOMERS", 8 "RECORD_ID": "1001", 9 "RECORD_TYPE": "PERSON", 10 "PRIMARY_NAME_LAST": "Smith", 11 "PRIMARY_NAME_FIRST": "Robert", 12 "DATE_OF_BIRTH": "12/11/1978", 13 "ADDR_TYPE": "MAILING", 14 "ADDR_LINE1": "123 Main Street, Las Vegas NV 89132", 15 "PHONE_TYPE": "HOME", 16 "PHONE_NUMBER": "702-919-1300", 17 "EMAIL_ADDRESS": "bsmith@work.com", 18 "DATE": "1/2/18", 19 "STATUS": "Active", 20 "AMOUNT": "100" 21 } 22}
- abstractmethod get_record_preview(record_definition: str, flags: int = <SzEngineFlags.SZ_ENTITY_INCLUDE_RECORD_FEATURE_DETAILS: 34359738368>) str [source]
The get_record_preview method describes the features resulting from the hypothetical load of a record.
- Parameters:
record_definition (str) – A JSON document containing the record to be tested.
flags (int, optional) – Flags used to control information returned. Defaults to SzEngineFlags.SZ_RECORD_PREVIEW_DEFAULT_FLAGS.
- Returns:
A JSON document containing metadata as specified by the flags.
- Return type:
str
Raises:
Example:
1import json 2 3from senzing import SzEngineFlags, SzError 4 5from . import sz_engine 6 7flags = SzEngineFlags.SZ_RECORD_PREVIEW_DEFAULT_FLAGS 8record_definition = json.dumps( 9 { 10 "RECORD_TYPE": "PERSON", 11 "PRIMARY_NAME_LAST": "Smith", 12 "PRIMARY_NAME_FIRST": "Robert", 13 "DATE_OF_BIRTH": "12/11/1978", 14 "ADDR_TYPE": "MAILING", 15 "ADDR_LINE1": "123 Main Street, Las Vegas NV 89132", 16 "PHONE_TYPE": "HOME", 17 "PHONE_NUMBER": "702-919-1300", 18 "EMAIL_ADDRESS": "bsmith@work.com", 19 "DATE": "1/2/18", 20 "STATUS": "Active", 21 "AMOUNT": "100", 22 } 23) 24 25try: 26 result = sz_engine.get_record_preview(record_definition, flags) 27 print(f"\n{result}\n") 28except SzError as err: 29 print(f"\nERROR: {err}\n")
Output:
1// Output has been formatted for easier reading. 2 3{ 4 "FEATURES": { 5 "NAME": [ 6 { 7 "LIB_FEAT_ID": -2, 8 "USAGE_TYPE": "PRIMARY", 9 "FEAT_DESC": "Robert Smith", 10 "ATTRIBUTES": { 11 "PRIMARY_NAME_LAST": "Smith", 12 "PRIMARY_NAME_FIRST": "Robert" 13 } 14 } 15 ], 16 "DOB": [ 17 { 18 "LIB_FEAT_ID": -3, 19 "FEAT_DESC": "12/11/1978", 20 "ATTRIBUTES": { 21 "DATE_OF_BIRTH": "12/11/1978" 22 } 23 } 24 ], 25 "ADDRESS": [ 26 { 27 "LIB_FEAT_ID": -4, 28 "USAGE_TYPE": "MAILING", 29 "FEAT_DESC": "123 Main Street, Las Vegas NV 89132", 30 "ATTRIBUTES": { 31 "ADDR_LINE1": "123 Main Street, Las Vegas NV 89132" 32 } 33 } 34 ], 35 "PHONE": [ 36 { 37 "LIB_FEAT_ID": -5, 38 "USAGE_TYPE": "HOME", 39 "FEAT_DESC": "702-919-1300", 40 "ATTRIBUTES": { 41 "PHONE_NUMBER": "702-919-1300" 42 } 43 } 44 ], 45 "EMAIL": [ 46 { 47 "LIB_FEAT_ID": -6, 48 "FEAT_DESC": "bsmith@work.com", 49 "ATTRIBUTES": { 50 "EMAIL_ADDRESS": "bsmith@work.com" 51 } 52 } 53 ], 54 "RECORD_TYPE": [ 55 { 56 "LIB_FEAT_ID": -11, 57 "FEAT_DESC": "PERSON", 58 "ATTRIBUTES": { 59 "RECORD_TYPE": "PERSON" 60 } 61 } 62 ] 63 } 64}
- abstractmethod get_redo_record() str [source]
The get_redo_record method retrieves and removes a pending redo record.
The process_redo_record method is called to process the redo record retrieved by get_redo_record.
- Returns:
A JSON document.
- Return type:
str
Raises:
Example:
1from senzing import SzError 2 3from . import sz_engine 4 5try: 6 result = sz_engine.get_redo_record() 7 print(f"\n{result}\n") 8except SzError as err: 9 print(f"\nERROR: {err}\n")
Output:
1// Output has been formatted for easier reading. 2 3{ 4 "REASON": "deferred delete", 5 "DATA_SOURCE": "CUSTOMERS", 6 "RECORD_ID": "1001", 7 "DSRC_ACTION": "X" 8}
- abstractmethod get_stats() str [source]
The get_stats method gets and resets the internal engine workload statistics for the current operating system process.
These statistics will automatically reset after retrieval.
- Returns:
A JSON document.
- Return type:
str
Raises:
Example:
1from senzing import SzError 2 3from . import sz_engine 4 5try: 6 result = sz_engine.get_stats() 7 print(f"\n{result}\n") 8except SzError as err: 9 print(f"\nERROR: {err}\n")
Output:
1// Output has been formatted for easier reading. 2 3{ 4 "workload": { 5 "apiVersion": "4.0.0.25134", 6 "loadedRecords": -1, 7 "addedRecords": 0, 8 "bulkAddedRecords": 0, 9 "optimizedOut": 0, 10 "optimizedOutSkipped": 0, 11 "newObsEnt": 0, 12 "obsEntHashSame": 0, 13 "obsEntHashDiff": 0, 14 "partiallyResolved": 0, 15 "deletedRecords": 0, 16 "changeDeletes": 0, 17 "reevaluations": 0, 18 "repairedEntities": 0, 19 "duration": 0, 20 "retries": 0, 21 "candidates": 0, 22 "actualAmbiguousTest": 0, 23 "cachedAmbiguousTest": 0, 24 "libFeatCacheHit": 93, 25 "libFeatCacheMiss": 67, 26 "resFeatStatCacheHit": 0, 27 "resFeatStatCacheMiss": 0, 28 "libFeatInsert": 0, 29 "resFeatStatInsert": 0, 30 "resFeatStatUpdateAttempt": 0, 31 "resFeatStatUpdateFail": 0, 32 "unresolveTest": 0, 33 "abortedUnresolve": 0, 34 "lockWaits": { 35 "maxRefreshLocksMS": 0, 36 "totalRefreshLocksMS": 0, 37 "countRefreshLocks": 0 38 }, 39 "unresolveTriggers": { 40 "normalResolve": 0, 41 "update": 0, 42 "relLink": 0, 43 "extensiveResolve": 0, 44 "ambiguousNoResolve": 0, 45 "ambiguousMultiResolve": 0 46 }, 47 "reresolveTriggers": { 48 "abortRetry": 0, 49 "unresolveMovement": 0, 50 "multipleResolvableCandidates": 0, 51 "resolveNewFeatures": 0, 52 "newFeatureFTypes": [] 53 }, 54 "reresolveSkipped": 0, 55 "filteredObsFeat": 0, 56 "expressedFeatureCalls": [], 57 "expressedFeaturesCreated": [], 58 "scoredPairs": [ 59 { 60 "ADDRESS": 2 61 }, 62 { 63 "DOB": 4 64 }, 65 { 66 "NAME": 6 67 } 68 ], 69 "cacheHit": [], 70 "cacheMiss": [ 71 { 72 "ADDRESS": 2 73 }, 74 { 75 "DOB": 4 76 }, 77 { 78 "NAME": 6 79 } 80 ], 81 "redoTriggers": [], 82 "latchContention": [], 83 "highContentionFeat": [], 84 "highContentionResEnt": [], 85 "genericDetect": [], 86 "candidateBuilders": [], 87 "suppressedCandidateBuilders": [], 88 "suppressedScoredFeatureType": [], 89 "suppressedCandidateBuildersForReresolve": [], 90 "suppressedScoredFeatureTypeForReresolve": [], 91 "suppressedDisclosedRelationshipDomainCount": 0, 92 "corruptEntityTestDiagnosis": { 93 "corruptionTypes": 0 94 }, 95 "threadState": { 96 "active": 0, 97 "idle": 1, 98 "governorContention": 0, 99 "sqlExecuting": 0, 100 "loader": 0, 101 "resolver": 0, 102 "scoring": 0, 103 "dataLatchContention": 0, 104 "obsEntContention": 0, 105 "resEntContention": 0 106 }, 107 "systemResources": { 108 "initResources": [ 109 { 110 "physicalCores": 10 111 }, 112 { 113 "logicalCores": 10 114 }, 115 { 116 "totalMemory": "31.3GB" 117 }, 118 { 119 "availableMemory": "21.4GB" 120 } 121 ], 122 "currResources": [ 123 { 124 "availableMemory": "17.8GB" 125 }, 126 { 127 "processMemory": "2.0GB" 128 }, 129 { 130 "activeThreads": 0 131 }, 132 { 133 "workerThreads": 1 134 }, 135 { 136 "systemLoad": [ 137 { 138 "cpuUser": 5.697687 139 }, 140 { 141 "cpuNice": 0.000053 142 }, 143 { 144 "cpuSystem": 14.274692 145 }, 146 { 147 "cpuIdle": 79.633011 148 }, 149 { 150 "cpuWait": 0.060391 151 }, 152 { 153 "cpuSoftIrq": 0.334167 154 } 155 ] 156 } 157 ] 158 } 159 } 160}
- abstractmethod get_virtual_entity_by_record_id(record_keys: ~typing.List[~typing.Tuple[str, str]], flags: int = <SzEngineFlags.SZ_ENTITY_CORE_FLAGS: 63488>) str [source]
The get_virtual_entity_by_record_id method describes how an entity would look if composed of a given set of records.
The virtual entity is composed of only those records and their features. Entity resolution is not performed.
- Parameters:
record_keys (list(tuple(str, str))) – The data source codes and record IDs identifying records to create the virtual entity from.
flags (int, optional) – Flags used to control information returned. Defaults to SzEngineFlags.SZ_VIRTUAL_ENTITY_DEFAULT_FLAGS.
- Returns:
A JSON document.
- Return type:
str
Raises:
Example:
1from senzing import SzEngineFlags, SzError 2 3from . import sz_engine 4 5flags = SzEngineFlags.SZ_VIRTUAL_ENTITY_DEFAULT_FLAGS 6record_list = [ 7 ("CUSTOMERS", "1001"), 8 ("CUSTOMERS", "1002"), 9] 10 11try: 12 result = sz_engine.get_virtual_entity_by_record_id(record_list, flags) 13 print(f"\n{result}\n") 14except SzError as err: 15 print(f"\nERROR: {err}\n")
Output:
1// Output has been formatted for easier reading. 2 3{ 4 "RESOLVED_ENTITY": { 5 "ENTITY_ID": 400011, 6 "ENTITY_NAME": "Bob Smith", 7 "FEATURES": { 8 "ADDRESS": [ 9 { 10 "FEAT_DESC": "1515 Adela Lane Las Vegas NV 89111", 11 "LIB_FEAT_ID": 200059, 12 "USAGE_TYPE": "HOME", 13 "FEAT_DESC_VALUES": [ 14 { 15 "FEAT_DESC": "1515 Adela Lane Las Vegas NV 89111", 16 "LIB_FEAT_ID": 200059 17 } 18 ] 19 }, 20 { 21 "FEAT_DESC": "123 Main Street, Las Vegas NV 89132", 22 "LIB_FEAT_ID": 3, 23 "USAGE_TYPE": "MAILING", 24 "FEAT_DESC_VALUES": [ 25 { 26 "FEAT_DESC": "123 Main Street, Las Vegas NV 89132", 27 "LIB_FEAT_ID": 3 28 } 29 ] 30 } 31 ], 32 "DOB": [ 33 { 34 "FEAT_DESC": "12/11/1978", 35 "LIB_FEAT_ID": 2, 36 "FEAT_DESC_VALUES": [ 37 { 38 "FEAT_DESC": "12/11/1978", 39 "LIB_FEAT_ID": 2 40 }, 41 { 42 "FEAT_DESC": "11/12/1978", 43 "LIB_FEAT_ID": 200058 44 } 45 ] 46 } 47 ], 48 "EMAIL": [ 49 { 50 "FEAT_DESC": "bsmith@work.com", 51 "LIB_FEAT_ID": 5, 52 "FEAT_DESC_VALUES": [ 53 { 54 "FEAT_DESC": "bsmith@work.com", 55 "LIB_FEAT_ID": 5 56 } 57 ] 58 } 59 ], 60 "NAME": [ 61 { 62 "FEAT_DESC": "Robert Smith", 63 "LIB_FEAT_ID": 1, 64 "USAGE_TYPE": "PRIMARY", 65 "FEAT_DESC_VALUES": [ 66 { 67 "FEAT_DESC": "Robert Smith", 68 "LIB_FEAT_ID": 1 69 }, 70 { 71 "FEAT_DESC": "Bob Smith", 72 "LIB_FEAT_ID": 200057 73 } 74 ] 75 } 76 ], 77 "PHONE": [ 78 { 79 "FEAT_DESC": "702-919-1300", 80 "LIB_FEAT_ID": 4, 81 "USAGE_TYPE": "HOME", 82 "FEAT_DESC_VALUES": [ 83 { 84 "FEAT_DESC": "702-919-1300", 85 "LIB_FEAT_ID": 4 86 } 87 ] 88 }, 89 { 90 "FEAT_DESC": "702-919-1300", 91 "LIB_FEAT_ID": 4, 92 "USAGE_TYPE": "MOBILE", 93 "FEAT_DESC_VALUES": [ 94 { 95 "FEAT_DESC": "702-919-1300", 96 "LIB_FEAT_ID": 4 97 } 98 ] 99 } 100 ], 101 "RECORD_TYPE": [ 102 { 103 "FEAT_DESC": "PERSON", 104 "LIB_FEAT_ID": 10, 105 "FEAT_DESC_VALUES": [ 106 { 107 "FEAT_DESC": "PERSON", 108 "LIB_FEAT_ID": 10 109 } 110 ] 111 } 112 ] 113 }, 114 "RECORD_SUMMARY": [ 115 { 116 "DATA_SOURCE": "CUSTOMERS", 117 "RECORD_COUNT": 2 118 } 119 ], 120 "RECORDS": [ 121 { 122 "DATA_SOURCE": "CUSTOMERS", 123 "RECORD_ID": "1002", 124 "INTERNAL_ID": 400011, 125 "FIRST_SEEN_DT": "2025-05-20T16:04:03Z", 126 "LAST_SEEN_DT": "2025-05-20T16:17:16Z" 127 }, 128 { 129 "DATA_SOURCE": "CUSTOMERS", 130 "RECORD_ID": "1001", 131 "INTERNAL_ID": 500001, 132 "FIRST_SEEN_DT": "2025-05-20T16:17:16Z", 133 "LAST_SEEN_DT": "2025-05-20T16:17:16Z" 134 } 135 ] 136 } 137}
- help(method_name: str = '') str [source]
The help method returns help for a particular message.
- Parameters:
method_name (str) – The name of the method. (e.g. “init”). If empty, a list of methods and descriptions is returned.
- Returns:
The Help information about the requested method
- Return type:
str
- abstractmethod how_entity_by_entity_id(entity_id: int, flags: int = <SzEngineFlags.SZ_INCLUDE_FEATURE_SCORES: 67108864>) str [source]
The how_entity_by_entity_id method explains how an entity was constructed from its records.
In most cases, how provides more detailed information than why as the resolution is detailed step-by-step.
- Parameters:
entity_id (int) – The unique identifier of an entity.
flags (int, optional) – Flags used to control information returned. Defaults to SzEngineFlags.SZ_HOW_ENTITY_DEFAULT_FLAGS.
- Returns:
A JSON document.
- Return type:
str
Raises:
Example:
1from senzing import SzEngineFlags, SzError 2 3from . import sz_engine 4 5entity_id = 1 6flags = SzEngineFlags.SZ_HOW_ENTITY_DEFAULT_FLAGS 7 8try: 9 result = sz_engine.how_entity_by_entity_id(entity_id, flags) 10 print(f"\n{result}\n") 11except SzError as err: 12 print(f"\nERROR: {err}\n")
Output:
1// Output has been formatted for easier reading. 2 3{ 4 "HOW_RESULTS": { 5 "RESOLUTION_STEPS": [ 6 { 7 "STEP": 1, 8 "VIRTUAL_ENTITY_1": { 9 "VIRTUAL_ENTITY_ID": "V400010", 10 "MEMBER_RECORDS": [ 11 { 12 "INTERNAL_ID": 400010, 13 "RECORDS": [ 14 { 15 "DATA_SOURCE": "CUSTOMERS", 16 "RECORD_ID": "1004" 17 } 18 ] 19 } 20 ] 21 }, 22 "VIRTUAL_ENTITY_2": { 23 "VIRTUAL_ENTITY_ID": "V400011", 24 "MEMBER_RECORDS": [ 25 { 26 "INTERNAL_ID": 400011, 27 "RECORDS": [ 28 { 29 "DATA_SOURCE": "CUSTOMERS", 30 "RECORD_ID": "1002" 31 } 32 ] 33 } 34 ] 35 }, 36 "INBOUND_VIRTUAL_ENTITY_ID": "V400010", 37 "RESULT_VIRTUAL_ENTITY_ID": "V400010-S1", 38 "MATCH_INFO": { 39 "MATCH_KEY": "+NAME+DOB+ADDRESS", 40 "ERRULE_CODE": "CNAME_CFF_CEXCL", 41 "CANDIDATE_KEYS": { 42 "ADDR_KEY": [ 43 { 44 "FEAT_ID": 200048, 45 "FEAT_DESC": "1515|ATL||LS FKS" 46 } 47 ] 48 }, 49 "FEATURE_SCORES": { 50 "ADDRESS": [ 51 { 52 "INBOUND_FEAT_ID": 200046, 53 "INBOUND_FEAT_DESC": "1515 Adela Ln Las Vegas NV 89132", 54 "INBOUND_FEAT_USAGE_TYPE": "HOME", 55 "CANDIDATE_FEAT_ID": 200059, 56 "CANDIDATE_FEAT_DESC": "1515 Adela Lane Las Vegas NV 89111", 57 "CANDIDATE_FEAT_USAGE_TYPE": "HOME", 58 "SCORE": 96, 59 "ADDITIONAL_SCORES": { 60 "FULL_SCORE": 96 61 }, 62 "SCORE_BUCKET": "CLOSE", 63 "SCORE_BEHAVIOR": "FF" 64 } 65 ], 66 "DOB": [ 67 { 68 "INBOUND_FEAT_ID": 200045, 69 "INBOUND_FEAT_DESC": "11/12/1979", 70 "INBOUND_FEAT_USAGE_TYPE": "", 71 "CANDIDATE_FEAT_ID": 200058, 72 "CANDIDATE_FEAT_DESC": "11/12/1978", 73 "CANDIDATE_FEAT_USAGE_TYPE": "", 74 "SCORE": 92, 75 "ADDITIONAL_SCORES": { 76 "FULL_SCORE": 92 77 }, 78 "SCORE_BUCKET": "CLOSE", 79 "SCORE_BEHAVIOR": "FMES" 80 } 81 ], 82 "NAME": [ 83 { 84 "INBOUND_FEAT_ID": 200044, 85 "INBOUND_FEAT_DESC": "B Smith", 86 "INBOUND_FEAT_USAGE_TYPE": "PRIMARY", 87 "CANDIDATE_FEAT_ID": 200057, 88 "CANDIDATE_FEAT_DESC": "Bob Smith", 89 "CANDIDATE_FEAT_USAGE_TYPE": "PRIMARY", 90 "SCORE": 92, 91 "ADDITIONAL_SCORES": { 92 "GNR_FN": 92, 93 "GNR_SN": 100, 94 "GNR_GN": 85, 95 "GENERATION_MATCH": -1, 96 "GNR_ON": -1 97 }, 98 "SCORE_BUCKET": "CLOSE", 99 "SCORE_BEHAVIOR": "NAME" 100 } 101 ], 102 "RECORD_TYPE": [ 103 { 104 "INBOUND_FEAT_ID": 10, 105 "INBOUND_FEAT_DESC": "PERSON", 106 "INBOUND_FEAT_USAGE_TYPE": "", 107 "CANDIDATE_FEAT_ID": 10, 108 "CANDIDATE_FEAT_DESC": "PERSON", 109 "CANDIDATE_FEAT_USAGE_TYPE": "", 110 "SCORE": 100, 111 "ADDITIONAL_SCORES": { 112 "FULL_SCORE": 100 113 }, 114 "SCORE_BUCKET": "SAME", 115 "SCORE_BEHAVIOR": "FVME" 116 } 117 ] 118 } 119 } 120 }, 121 { 122 "STEP": 2, 123 "VIRTUAL_ENTITY_1": { 124 "VIRTUAL_ENTITY_ID": "V1", 125 "MEMBER_RECORDS": [ 126 { 127 "INTERNAL_ID": 1, 128 "RECORDS": [ 129 { 130 "DATA_SOURCE": "TEST", 131 "RECORD_ID": "1" 132 } 133 ] 134 } 135 ] 136 }, 137 "VIRTUAL_ENTITY_2": { 138 "VIRTUAL_ENTITY_ID": "V400010-S1", 139 "MEMBER_RECORDS": [ 140 { 141 "INTERNAL_ID": 400010, 142 "RECORDS": [ 143 { 144 "DATA_SOURCE": "CUSTOMERS", 145 "RECORD_ID": "1004" 146 } 147 ] 148 }, 149 { 150 "INTERNAL_ID": 400011, 151 "RECORDS": [ 152 { 153 "DATA_SOURCE": "CUSTOMERS", 154 "RECORD_ID": "1002" 155 } 156 ] 157 } 158 ] 159 }, 160 "INBOUND_VIRTUAL_ENTITY_ID": "V400010-S1", 161 "RESULT_VIRTUAL_ENTITY_ID": "V1-S2", 162 "MATCH_INFO": { 163 "MATCH_KEY": "+NAME+DOB+PHONE+EMAIL", 164 "ERRULE_CODE": "SF1_SNAME_CFF_CSTAB", 165 "CANDIDATE_KEYS": { 166 "EMAIL_KEY": [ 167 { 168 "FEAT_ID": 11, 169 "FEAT_DESC": "bsmith@WORK.COM" 170 } 171 ], 172 "NAMEDATE_KEY": [ 173 { 174 "FEAT_ID": 14, 175 "FEAT_DESC": "RPRT|SM0|DOB.MMDD_HASH=1211" 176 }, 177 { 178 "FEAT_ID": 15, 179 "FEAT_DESC": "RPRT|SM0|DOB=71211" 180 } 181 ], 182 "NAMEPHONE_KEY": [ 183 { 184 "FEAT_ID": 19, 185 "FEAT_DESC": "RPRT|SM0|PHONE.PHONE_LAST_5=91300" 186 } 187 ], 188 "NAMEREGION_KEY": [ 189 { 190 "FEAT_ID": 18, 191 "FEAT_DESC": "RPRT|SM0|ADDRESS.CITY_STD=LS FKS" 192 } 193 ], 194 "NAME_KEY": [ 195 { 196 "FEAT_ID": 6, 197 "FEAT_DESC": "RPRT|SM0" 198 } 199 ], 200 "PHONE_KEY": [ 201 { 202 "FEAT_ID": 9, 203 "FEAT_DESC": "7029191300" 204 } 205 ] 206 }, 207 "FEATURE_SCORES": { 208 "ADDRESS": [ 209 { 210 "INBOUND_FEAT_ID": 200059, 211 "INBOUND_FEAT_DESC": "1515 Adela Lane Las Vegas NV 89111", 212 "INBOUND_FEAT_USAGE_TYPE": "HOME", 213 "CANDIDATE_FEAT_ID": 3, 214 "CANDIDATE_FEAT_DESC": "123 Main Street, Las Vegas NV 89132", 215 "CANDIDATE_FEAT_USAGE_TYPE": "MAILING", 216 "SCORE": 42, 217 "ADDITIONAL_SCORES": { 218 "FULL_SCORE": 42 219 }, 220 "SCORE_BUCKET": "NO_CHANCE", 221 "SCORE_BEHAVIOR": "FF" 222 } 223 ], 224 "DOB": [ 225 { 226 "INBOUND_FEAT_ID": 200058, 227 "INBOUND_FEAT_DESC": "11/12/1978", 228 "INBOUND_FEAT_USAGE_TYPE": "", 229 "CANDIDATE_FEAT_ID": 2, 230 "CANDIDATE_FEAT_DESC": "12/11/1978", 231 "CANDIDATE_FEAT_USAGE_TYPE": "", 232 "SCORE": 95, 233 "ADDITIONAL_SCORES": { 234 "FULL_SCORE": 95 235 }, 236 "SCORE_BUCKET": "CLOSE", 237 "SCORE_BEHAVIOR": "FMES" 238 } 239 ], 240 "EMAIL": [ 241 { 242 "INBOUND_FEAT_ID": 5, 243 "INBOUND_FEAT_DESC": "bsmith@work.com", 244 "INBOUND_FEAT_USAGE_TYPE": "", 245 "CANDIDATE_FEAT_ID": 5, 246 "CANDIDATE_FEAT_DESC": "bsmith@work.com", 247 "CANDIDATE_FEAT_USAGE_TYPE": "", 248 "SCORE": 100, 249 "ADDITIONAL_SCORES": { 250 "FULL_SCORE": 100 251 }, 252 "SCORE_BUCKET": "SAME", 253 "SCORE_BEHAVIOR": "F1" 254 } 255 ], 256 "NAME": [ 257 { 258 "INBOUND_FEAT_ID": 200057, 259 "INBOUND_FEAT_DESC": "Bob Smith", 260 "INBOUND_FEAT_USAGE_TYPE": "PRIMARY", 261 "CANDIDATE_FEAT_ID": 1, 262 "CANDIDATE_FEAT_DESC": "Robert Smith", 263 "CANDIDATE_FEAT_USAGE_TYPE": "PRIMARY", 264 "SCORE": 97, 265 "ADDITIONAL_SCORES": { 266 "GNR_FN": 97, 267 "GNR_SN": 100, 268 "GNR_GN": 95, 269 "GENERATION_MATCH": -1, 270 "GNR_ON": -1 271 }, 272 "SCORE_BUCKET": "CLOSE", 273 "SCORE_BEHAVIOR": "NAME" 274 } 275 ], 276 "PHONE": [ 277 { 278 "INBOUND_FEAT_ID": 4, 279 "INBOUND_FEAT_DESC": "702-919-1300", 280 "INBOUND_FEAT_USAGE_TYPE": "MOBILE", 281 "CANDIDATE_FEAT_ID": 4, 282 "CANDIDATE_FEAT_DESC": "702-919-1300", 283 "CANDIDATE_FEAT_USAGE_TYPE": "HOME", 284 "SCORE": 100, 285 "ADDITIONAL_SCORES": { 286 "FULL_SCORE": 100 287 }, 288 "SCORE_BUCKET": "SAME", 289 "SCORE_BEHAVIOR": "FF" 290 } 291 ], 292 "RECORD_TYPE": [ 293 { 294 "INBOUND_FEAT_ID": 10, 295 "INBOUND_FEAT_DESC": "PERSON", 296 "INBOUND_FEAT_USAGE_TYPE": "", 297 "CANDIDATE_FEAT_ID": 10, 298 "CANDIDATE_FEAT_DESC": "PERSON", 299 "CANDIDATE_FEAT_USAGE_TYPE": "", 300 "SCORE": 100, 301 "ADDITIONAL_SCORES": { 302 "FULL_SCORE": 100 303 }, 304 "SCORE_BUCKET": "SAME", 305 "SCORE_BEHAVIOR": "FVME" 306 } 307 ] 308 } 309 } 310 }, 311 { 312 "STEP": 3, 313 "VIRTUAL_ENTITY_1": { 314 "VIRTUAL_ENTITY_ID": "V1-S2", 315 "MEMBER_RECORDS": [ 316 { 317 "INTERNAL_ID": 1, 318 "RECORDS": [ 319 { 320 "DATA_SOURCE": "TEST", 321 "RECORD_ID": "1" 322 } 323 ] 324 }, 325 { 326 "INTERNAL_ID": 400010, 327 "RECORDS": [ 328 { 329 "DATA_SOURCE": "CUSTOMERS", 330 "RECORD_ID": "1004" 331 } 332 ] 333 }, 334 { 335 "INTERNAL_ID": 400011, 336 "RECORDS": [ 337 { 338 "DATA_SOURCE": "CUSTOMERS", 339 "RECORD_ID": "1002" 340 } 341 ] 342 } 343 ] 344 }, 345 "VIRTUAL_ENTITY_2": { 346 "VIRTUAL_ENTITY_ID": "V500001", 347 "MEMBER_RECORDS": [ 348 { 349 "INTERNAL_ID": 500001, 350 "RECORDS": [ 351 { 352 "DATA_SOURCE": "CUSTOMERS", 353 "RECORD_ID": "1001" 354 } 355 ] 356 } 357 ] 358 }, 359 "INBOUND_VIRTUAL_ENTITY_ID": "V1-S2", 360 "RESULT_VIRTUAL_ENTITY_ID": "V1-S3", 361 "MATCH_INFO": { 362 "MATCH_KEY": "+NAME+DOB+ADDRESS+PHONE+EMAIL", 363 "ERRULE_CODE": "SF1_SNAME_CFF_CSTAB", 364 "CANDIDATE_KEYS": { 365 "ADDR_KEY": [ 366 { 367 "FEAT_ID": 7, 368 "FEAT_DESC": "123|MN||LS FKS" 369 }, 370 { 371 "FEAT_ID": 8, 372 "FEAT_DESC": "123|MN||89132" 373 } 374 ], 375 "DOB": [ 376 { 377 "FEAT_ID": 2, 378 "FEAT_DESC": "12/11/1978" 379 } 380 ], 381 "EMAIL_KEY": [ 382 { 383 "FEAT_ID": 11, 384 "FEAT_DESC": "bsmith@WORK.COM" 385 } 386 ], 387 "NAMEADDR_KEY": [ 388 { 389 "FEAT_ID": 12, 390 "FEAT_DESC": "RPRT|SM0|ADDR_KEY.EXPRESSION=123|MN||89132" 391 }, 392 { 393 "FEAT_ID": 13, 394 "FEAT_DESC": "RPRT|SM0|ADDR_KEY.EXPRESSION=123|MN||LS FKS" 395 } 396 ], 397 "NAMEDATE_KEY": [ 398 { 399 "FEAT_ID": 14, 400 "FEAT_DESC": "RPRT|SM0|DOB.MMDD_HASH=1211" 401 }, 402 { 403 "FEAT_ID": 15, 404 "FEAT_DESC": "RPRT|SM0|DOB=71211" 405 }, 406 { 407 "FEAT_ID": 16, 408 "FEAT_DESC": "RPRT|SM0|DOB.MMYY_HASH=1278" 409 } 410 ], 411 "NAMEPHONE_KEY": [ 412 { 413 "FEAT_ID": 19, 414 "FEAT_DESC": "RPRT|SM0|PHONE.PHONE_LAST_5=91300" 415 } 416 ], 417 "NAMEREGION_KEY": [ 418 { 419 "FEAT_ID": 17, 420 "FEAT_DESC": "RPRT|SM0|POST=89132" 421 }, 422 { 423 "FEAT_ID": 18, 424 "FEAT_DESC": "RPRT|SM0|ADDRESS.CITY_STD=LS FKS" 425 } 426 ], 427 "NAME_KEY": [ 428 { 429 "FEAT_ID": 6, 430 "FEAT_DESC": "RPRT|SM0" 431 } 432 ], 433 "PHONE_KEY": [ 434 { 435 "FEAT_ID": 9, 436 "FEAT_DESC": "7029191300" 437 } 438 ] 439 }, 440 "FEATURE_SCORES": { 441 "ADDRESS": [ 442 { 443 "INBOUND_FEAT_ID": 3, 444 "INBOUND_FEAT_DESC": "123 Main Street, Las Vegas NV 89132", 445 "INBOUND_FEAT_USAGE_TYPE": "MAILING", 446 "CANDIDATE_FEAT_ID": 3, 447 "CANDIDATE_FEAT_DESC": "123 Main Street, Las Vegas NV 89132", 448 "CANDIDATE_FEAT_USAGE_TYPE": "MAILING", 449 "SCORE": 100, 450 "ADDITIONAL_SCORES": { 451 "FULL_SCORE": 100 452 }, 453 "SCORE_BUCKET": "SAME", 454 "SCORE_BEHAVIOR": "FF" 455 } 456 ], 457 "DOB": [ 458 { 459 "INBOUND_FEAT_ID": 2, 460 "INBOUND_FEAT_DESC": "12/11/1978", 461 "INBOUND_FEAT_USAGE_TYPE": "", 462 "CANDIDATE_FEAT_ID": 2, 463 "CANDIDATE_FEAT_DESC": "12/11/1978", 464 "CANDIDATE_FEAT_USAGE_TYPE": "", 465 "SCORE": 100, 466 "ADDITIONAL_SCORES": { 467 "FULL_SCORE": 100 468 }, 469 "SCORE_BUCKET": "SAME", 470 "SCORE_BEHAVIOR": "FMES" 471 } 472 ], 473 "EMAIL": [ 474 { 475 "INBOUND_FEAT_ID": 5, 476 "INBOUND_FEAT_DESC": "bsmith@work.com", 477 "INBOUND_FEAT_USAGE_TYPE": "", 478 "CANDIDATE_FEAT_ID": 5, 479 "CANDIDATE_FEAT_DESC": "bsmith@work.com", 480 "CANDIDATE_FEAT_USAGE_TYPE": "", 481 "SCORE": 100, 482 "ADDITIONAL_SCORES": { 483 "FULL_SCORE": 100 484 }, 485 "SCORE_BUCKET": "SAME", 486 "SCORE_BEHAVIOR": "F1" 487 } 488 ], 489 "NAME": [ 490 { 491 "INBOUND_FEAT_ID": 1, 492 "INBOUND_FEAT_DESC": "Robert Smith", 493 "INBOUND_FEAT_USAGE_TYPE": "PRIMARY", 494 "CANDIDATE_FEAT_ID": 1, 495 "CANDIDATE_FEAT_DESC": "Robert Smith", 496 "CANDIDATE_FEAT_USAGE_TYPE": "PRIMARY", 497 "SCORE": 100, 498 "ADDITIONAL_SCORES": { 499 "GNR_FN": 100, 500 "GNR_SN": 100, 501 "GNR_GN": 100, 502 "GENERATION_MATCH": -1, 503 "GNR_ON": -1 504 }, 505 "SCORE_BUCKET": "SAME", 506 "SCORE_BEHAVIOR": "NAME" 507 } 508 ], 509 "PHONE": [ 510 { 511 "INBOUND_FEAT_ID": 4, 512 "INBOUND_FEAT_DESC": "702-919-1300", 513 "INBOUND_FEAT_USAGE_TYPE": "HOME", 514 "CANDIDATE_FEAT_ID": 4, 515 "CANDIDATE_FEAT_DESC": "702-919-1300", 516 "CANDIDATE_FEAT_USAGE_TYPE": "HOME", 517 "SCORE": 100, 518 "ADDITIONAL_SCORES": { 519 "FULL_SCORE": 100 520 }, 521 "SCORE_BUCKET": "SAME", 522 "SCORE_BEHAVIOR": "FF" 523 } 524 ], 525 "RECORD_TYPE": [ 526 { 527 "INBOUND_FEAT_ID": 10, 528 "INBOUND_FEAT_DESC": "PERSON", 529 "INBOUND_FEAT_USAGE_TYPE": "", 530 "CANDIDATE_FEAT_ID": 10, 531 "CANDIDATE_FEAT_DESC": "PERSON", 532 "CANDIDATE_FEAT_USAGE_TYPE": "", 533 "SCORE": 100, 534 "ADDITIONAL_SCORES": { 535 "FULL_SCORE": 100 536 }, 537 "SCORE_BUCKET": "SAME", 538 "SCORE_BEHAVIOR": "FVME" 539 } 540 ] 541 } 542 } 543 }, 544 { 545 "STEP": 4, 546 "VIRTUAL_ENTITY_1": { 547 "VIRTUAL_ENTITY_ID": "V1-S3", 548 "MEMBER_RECORDS": [ 549 { 550 "INTERNAL_ID": 1, 551 "RECORDS": [ 552 { 553 "DATA_SOURCE": "TEST", 554 "RECORD_ID": "1" 555 } 556 ] 557 }, 558 { 559 "INTERNAL_ID": 400010, 560 "RECORDS": [ 561 { 562 "DATA_SOURCE": "CUSTOMERS", 563 "RECORD_ID": "1004" 564 } 565 ] 566 }, 567 { 568 "INTERNAL_ID": 400011, 569 "RECORDS": [ 570 { 571 "DATA_SOURCE": "CUSTOMERS", 572 "RECORD_ID": "1002" 573 } 574 ] 575 }, 576 { 577 "INTERNAL_ID": 500001, 578 "RECORDS": [ 579 { 580 "DATA_SOURCE": "CUSTOMERS", 581 "RECORD_ID": "1001" 582 } 583 ] 584 } 585 ] 586 }, 587 "VIRTUAL_ENTITY_2": { 588 "VIRTUAL_ENTITY_ID": "V400001", 589 "MEMBER_RECORDS": [ 590 { 591 "INTERNAL_ID": 400001, 592 "RECORDS": [ 593 { 594 "DATA_SOURCE": "CUSTOMERS", 595 "RECORD_ID": "1003" 596 } 597 ] 598 } 599 ] 600 }, 601 "INBOUND_VIRTUAL_ENTITY_ID": "V1-S3", 602 "RESULT_VIRTUAL_ENTITY_ID": "V1-S4", 603 "MATCH_INFO": { 604 "MATCH_KEY": "+NAME+DOB+EMAIL", 605 "ERRULE_CODE": "SF1_PNAME_CSTAB", 606 "CANDIDATE_KEYS": { 607 "DOB": [ 608 { 609 "FEAT_ID": 2, 610 "FEAT_DESC": "12/11/1978" 611 } 612 ], 613 "EMAIL_KEY": [ 614 { 615 "FEAT_ID": 11, 616 "FEAT_DESC": "bsmith@WORK.COM" 617 } 618 ], 619 "NAMEDATE_KEY": [ 620 { 621 "FEAT_ID": 14, 622 "FEAT_DESC": "RPRT|SM0|DOB.MMDD_HASH=1211" 623 }, 624 { 625 "FEAT_ID": 15, 626 "FEAT_DESC": "RPRT|SM0|DOB=71211" 627 }, 628 { 629 "FEAT_ID": 16, 630 "FEAT_DESC": "RPRT|SM0|DOB.MMYY_HASH=1278" 631 }, 632 { 633 "FEAT_ID": 200005, 634 "FEAT_DESC": "PP|SM0|DOB=71211" 635 }, 636 { 637 "FEAT_ID": 200007, 638 "FEAT_DESC": "PP|SM0|DOB.MMDD_HASH=1211" 639 } 640 ], 641 "NAME_KEY": [ 642 { 643 "FEAT_ID": 6, 644 "FEAT_DESC": "RPRT|SM0" 645 }, 646 { 647 "FEAT_ID": 200002, 648 "FEAT_DESC": "PP|SM0" 649 } 650 ] 651 }, 652 "FEATURE_SCORES": { 653 "DOB": [ 654 { 655 "INBOUND_FEAT_ID": 2, 656 "INBOUND_FEAT_DESC": "12/11/1978", 657 "INBOUND_FEAT_USAGE_TYPE": "", 658 "CANDIDATE_FEAT_ID": 2, 659 "CANDIDATE_FEAT_DESC": "12/11/1978", 660 "CANDIDATE_FEAT_USAGE_TYPE": "", 661 "SCORE": 100, 662 "ADDITIONAL_SCORES": { 663 "FULL_SCORE": 100 664 }, 665 "SCORE_BUCKET": "SAME", 666 "SCORE_BEHAVIOR": "FMES" 667 } 668 ], 669 "EMAIL": [ 670 { 671 "INBOUND_FEAT_ID": 5, 672 "INBOUND_FEAT_DESC": "bsmith@work.com", 673 "INBOUND_FEAT_USAGE_TYPE": "", 674 "CANDIDATE_FEAT_ID": 5, 675 "CANDIDATE_FEAT_DESC": "bsmith@work.com", 676 "CANDIDATE_FEAT_USAGE_TYPE": "", 677 "SCORE": 100, 678 "ADDITIONAL_SCORES": { 679 "FULL_SCORE": 100 680 }, 681 "SCORE_BUCKET": "SAME", 682 "SCORE_BEHAVIOR": "F1" 683 } 684 ], 685 "NAME": [ 686 { 687 "INBOUND_FEAT_ID": 200057, 688 "INBOUND_FEAT_DESC": "Bob Smith", 689 "INBOUND_FEAT_USAGE_TYPE": "PRIMARY", 690 "CANDIDATE_FEAT_ID": 200001, 691 "CANDIDATE_FEAT_DESC": "Bob J Smith", 692 "CANDIDATE_FEAT_USAGE_TYPE": "PRIMARY", 693 "SCORE": 93, 694 "ADDITIONAL_SCORES": { 695 "GNR_FN": 93, 696 "GNR_SN": 100, 697 "GNR_GN": 93, 698 "GENERATION_MATCH": -1, 699 "GNR_ON": -1 700 }, 701 "SCORE_BUCKET": "CLOSE", 702 "SCORE_BEHAVIOR": "NAME" 703 } 704 ], 705 "RECORD_TYPE": [ 706 { 707 "INBOUND_FEAT_ID": 10, 708 "INBOUND_FEAT_DESC": "PERSON", 709 "INBOUND_FEAT_USAGE_TYPE": "", 710 "CANDIDATE_FEAT_ID": 10, 711 "CANDIDATE_FEAT_DESC": "PERSON", 712 "CANDIDATE_FEAT_USAGE_TYPE": "", 713 "SCORE": 100, 714 "ADDITIONAL_SCORES": { 715 "FULL_SCORE": 100 716 }, 717 "SCORE_BUCKET": "SAME", 718 "SCORE_BEHAVIOR": "FVME" 719 } 720 ] 721 } 722 } 723 } 724 ], 725 "FINAL_STATE": { 726 "NEED_REEVALUATION": 0, 727 "VIRTUAL_ENTITIES": [ 728 { 729 "VIRTUAL_ENTITY_ID": "V1-S4", 730 "MEMBER_RECORDS": [ 731 { 732 "INTERNAL_ID": 1, 733 "RECORDS": [ 734 { 735 "DATA_SOURCE": "TEST", 736 "RECORD_ID": "1" 737 } 738 ] 739 }, 740 { 741 "INTERNAL_ID": 400001, 742 "RECORDS": [ 743 { 744 "DATA_SOURCE": "CUSTOMERS", 745 "RECORD_ID": "1003" 746 } 747 ] 748 }, 749 { 750 "INTERNAL_ID": 400010, 751 "RECORDS": [ 752 { 753 "DATA_SOURCE": "CUSTOMERS", 754 "RECORD_ID": "1004" 755 } 756 ] 757 }, 758 { 759 "INTERNAL_ID": 400011, 760 "RECORDS": [ 761 { 762 "DATA_SOURCE": "CUSTOMERS", 763 "RECORD_ID": "1002" 764 } 765 ] 766 }, 767 { 768 "INTERNAL_ID": 500001, 769 "RECORDS": [ 770 { 771 "DATA_SOURCE": "CUSTOMERS", 772 "RECORD_ID": "1001" 773 } 774 ] 775 } 776 ] 777 } 778 ] 779 } 780 } 781}
- abstractmethod prime_engine() None [source]
The prime_engine method pre-loads engine resources.
If this call is not made, these resources are initialized the first time they are needed and can cause unusually long processing times the first time a function is called that requires these resources.
Raises:
Example:
1from senzing import SzError 2 3from . import sz_engine 4 5try: 6 sz_engine.prime_engine() 7except SzError as err: 8 print(f"\nERROR: {err}\n")
- abstractmethod process_redo_record(redo_record: str, flags: int = 0) str [source]
The process_redo_record method processes the provided redo record.
- Parameters:
redo_record (str) – A redo record retrieved from get_redo_record.
flags (int, optional) – Flags used to control information returned. Defaults to 0.
Raises:
Example:
1from senzing import SzEngineFlags, SzError 2 3from . import sz_engine 4 5flags = SzEngineFlags.SZ_WITH_INFO 6 7try: 8 while True: 9 redo_record = sz_engine.get_redo_record() 10 if not redo_record: 11 break 12 result = sz_engine.process_redo_record(redo_record, flags) 13 print(result) 14except SzError as err: 15 print(f"\nERROR: {err}\n")
Output:
1// Output has been formatted for easier reading. 2 3{ 4 "DATA_SOURCE": "CUSTOMERS", 5 "RECORD_ID": "2207", 6 "AFFECTED_ENTITIES": [ 7 { 8 "ENTITY_ID": 305 9 } 10 ] 11}
- abstractmethod reevaluate_entity(entity_id: int, flags: int = <SzEngineFlags.SZ_NO_FLAGS: 0>) str [source]
The reevaluate_entity method reevaluates an entity by entity ID.
- Parameters:
entity_id (int) – The unique identifier of an entity.
flags (int, optional) – Flags used to control information returned. Defaults to SzEngineFlags.SZ_REEVALUATE_ENTITY_DEFAULT_FLAGS.
Raises:
Example:
1from senzing import SzEngineFlags, SzError 2 3from . import sz_engine 4 5entity_id = 1 6flags = SzEngineFlags.SZ_WITH_INFO 7 8try: 9 result = sz_engine.reevaluate_entity(entity_id, flags) 10 print(f"\n{result}\n") 11except SzError as err: 12 print(f"\nERROR: {err}\n")
Output:
1// Output has been formatted for easier reading. 2 3{ 4 "AFFECTED_ENTITIES": [ 5 { 6 "ENTITY_ID": 1 7 } 8 ] 9}
- abstractmethod reevaluate_record(data_source_code: str, record_id: str, flags: int = <SzEngineFlags.SZ_NO_FLAGS: 0>) str [source]
The reevaluate_record method reevaluates an entity by record ID.
- Parameters:
data_source_code (str) – Identifies the provenance of the data.
record_id (str) – The unique identifier within the records of the same data source.
flags (int, optional) – Flags used to control information returned. Defaults to SzEngineFlags.SZ_REEVALUATE_RECORD_DEFAULT_FLAGS.
- Returns:
If flags are set to return the WITH_INFO response a JSON document containing the details, otherwise an empty string.
- Return type:
str
Raises:
Example:
1from senzing import SzEngineFlags, SzError 2 3from . import sz_engine 4 5data_source_code = "CUSTOMERS" 6flags = SzEngineFlags.SZ_WITH_INFO 7record_id = "1001" 8 9try: 10 result = sz_engine.reevaluate_record(data_source_code, record_id, flags) 11 print(f"\n{result}\n") 12except SzError as err: 13 print(f"\nERROR: {err}\n")
Output:
1// Output has been formatted for easier reading. 2 3{ 4 "DATA_SOURCE": "CUSTOMERS", 5 "RECORD_ID": "1001", 6 "AFFECTED_ENTITIES": [ 7 { 8 "ENTITY_ID": 35 9 } 10 ] 11}
- abstractmethod search_by_attributes(attributes: str, flags: int = <SzEngineFlags.SZ_SEARCH_BY_ATTRIBUTES_ALL: 201340943>, search_profile: str = '') str [source]
The search_by_attributes method searches for entities that match or relate to the provided attributes.
- Parameters:
attributes (str) – A JSON document with the attribute data to search for.
flags (int, optional) – _description_. Defaults to SzEngineFlags.SZ_SEARCH_BY_ATTRIBUTES_DEFAULT_FLAGS.
search_profile (str) – The name of a configured search profile. Defaults to SEARCH.
- Returns:
A JSON document.
- Return type:
str
Raises:
Example:
1import json 2 3from senzing import SzEngineFlags, SzError 4 5from . import sz_engine 6 7attributes = json.dumps({"NAME_FULL": "Bob Smith", "EMAIL_ADDRESS": "bsmith@work.com"}) 8flags = SzEngineFlags.SZ_SEARCH_BY_ATTRIBUTES_DEFAULT_FLAGS 9 10try: 11 result = sz_engine.search_by_attributes(attributes, flags) 12 print(f"\n{result}\n") 13except SzError as err: 14 print(f"\nERROR: {err}\n")
Output:
1// Output has been formatted for easier reading. 2 3{ 4 "RESOLVED_ENTITIES": [ 5 { 6 "MATCH_INFO": { 7 "MATCH_LEVEL_CODE": "RESOLVED", 8 "MATCH_KEY": "+NAME+EMAIL", 9 "ERRULE_CODE": "SF1_CNAME", 10 "CANDIDATE_KEYS": { 11 "EMAIL_KEY": [ 12 { 13 "FEAT_ID": 11, 14 "FEAT_DESC": "bsmith@WORK.COM" 15 } 16 ], 17 "NAME_KEY": [ 18 { 19 "FEAT_ID": 6, 20 "FEAT_DESC": "RPRT|SM0" 21 }, 22 { 23 "FEAT_ID": 200002, 24 "FEAT_DESC": "PP|SM0" 25 } 26 ] 27 }, 28 "FEATURE_SCORES": { 29 "EMAIL": [ 30 { 31 "INBOUND_FEAT_ID": 5, 32 "INBOUND_FEAT_DESC": "bsmith@work.com", 33 "INBOUND_FEAT_USAGE_TYPE": "", 34 "CANDIDATE_FEAT_ID": 5, 35 "CANDIDATE_FEAT_DESC": "bsmith@work.com", 36 "CANDIDATE_FEAT_USAGE_TYPE": "", 37 "SCORE": 100, 38 "ADDITIONAL_SCORES": { 39 "FULL_SCORE": 100 40 }, 41 "SCORE_BUCKET": "SAME", 42 "SCORE_BEHAVIOR": "F1" 43 } 44 ], 45 "NAME": [ 46 { 47 "INBOUND_FEAT_ID": -2, 48 "INBOUND_FEAT_DESC": "Bob Smith", 49 "INBOUND_FEAT_USAGE_TYPE": "", 50 "CANDIDATE_FEAT_ID": 1, 51 "CANDIDATE_FEAT_DESC": "Robert Smith", 52 "CANDIDATE_FEAT_USAGE_TYPE": "PRIMARY", 53 "SCORE": 97, 54 "ADDITIONAL_SCORES": { 55 "GNR_FN": 97, 56 "GNR_SN": -1, 57 "GNR_GN": -1, 58 "GENERATION_MATCH": -1, 59 "GNR_ON": -1 60 }, 61 "SCORE_BUCKET": "CLOSE", 62 "SCORE_BEHAVIOR": "NAME" 63 } 64 ] 65 } 66 }, 67 "ENTITY": { 68 "RESOLVED_ENTITY": { 69 "ENTITY_ID": 1, 70 "ENTITY_NAME": "Robert Smith", 71 "FEATURES": { 72 "ADDRESS": [ 73 { 74 "FEAT_DESC": "1515 Adela Lane Las Vegas NV 89111", 75 "LIB_FEAT_ID": 200059, 76 "USAGE_TYPE": "HOME", 77 "FEAT_DESC_VALUES": [ 78 { 79 "FEAT_DESC": "1515 Adela Lane Las Vegas NV 89111", 80 "LIB_FEAT_ID": 200059 81 }, 82 { 83 "FEAT_DESC": "1515 Adela Ln Las Vegas NV 89132", 84 "LIB_FEAT_ID": 200046 85 } 86 ] 87 }, 88 { 89 "FEAT_DESC": "123 Main Street, Las Vegas NV 89132", 90 "LIB_FEAT_ID": 3, 91 "USAGE_TYPE": "MAILING", 92 "FEAT_DESC_VALUES": [ 93 { 94 "FEAT_DESC": "123 Main Street, Las Vegas NV 89132", 95 "LIB_FEAT_ID": 3 96 } 97 ] 98 } 99 ], 100 "DOB": [ 101 { 102 "FEAT_DESC": "11/12/1979", 103 "LIB_FEAT_ID": 200045, 104 "FEAT_DESC_VALUES": [ 105 { 106 "FEAT_DESC": "11/12/1979", 107 "LIB_FEAT_ID": 200045 108 } 109 ] 110 }, 111 { 112 "FEAT_DESC": "12/11/1978", 113 "LIB_FEAT_ID": 2, 114 "FEAT_DESC_VALUES": [ 115 { 116 "FEAT_DESC": "12/11/1978", 117 "LIB_FEAT_ID": 2 118 }, 119 { 120 "FEAT_DESC": "11/12/1978", 121 "LIB_FEAT_ID": 200058 122 } 123 ] 124 } 125 ], 126 "EMAIL": [ 127 { 128 "FEAT_DESC": "bsmith@work.com", 129 "LIB_FEAT_ID": 5, 130 "FEAT_DESC_VALUES": [ 131 { 132 "FEAT_DESC": "bsmith@work.com", 133 "LIB_FEAT_ID": 5 134 } 135 ] 136 } 137 ], 138 "NAME": [ 139 { 140 "FEAT_DESC": "B Smith", 141 "LIB_FEAT_ID": 200044, 142 "USAGE_TYPE": "PRIMARY", 143 "FEAT_DESC_VALUES": [ 144 { 145 "FEAT_DESC": "B Smith", 146 "LIB_FEAT_ID": 200044 147 } 148 ] 149 }, 150 { 151 "FEAT_DESC": "Robert Smith", 152 "LIB_FEAT_ID": 1, 153 "USAGE_TYPE": "PRIMARY", 154 "FEAT_DESC_VALUES": [ 155 { 156 "FEAT_DESC": "Robert Smith", 157 "LIB_FEAT_ID": 1 158 }, 159 { 160 "FEAT_DESC": "Bob J Smith", 161 "LIB_FEAT_ID": 200001 162 }, 163 { 164 "FEAT_DESC": "Bob Smith", 165 "LIB_FEAT_ID": 200057 166 } 167 ] 168 } 169 ], 170 "PHONE": [ 171 { 172 "FEAT_DESC": "702-919-1300", 173 "LIB_FEAT_ID": 4, 174 "USAGE_TYPE": "HOME", 175 "FEAT_DESC_VALUES": [ 176 { 177 "FEAT_DESC": "702-919-1300", 178 "LIB_FEAT_ID": 4 179 } 180 ] 181 }, 182 { 183 "FEAT_DESC": "702-919-1300", 184 "LIB_FEAT_ID": 4, 185 "USAGE_TYPE": "MOBILE", 186 "FEAT_DESC_VALUES": [ 187 { 188 "FEAT_DESC": "702-919-1300", 189 "LIB_FEAT_ID": 4 190 } 191 ] 192 } 193 ], 194 "RECORD_TYPE": [ 195 { 196 "FEAT_DESC": "PERSON", 197 "LIB_FEAT_ID": 10, 198 "FEAT_DESC_VALUES": [ 199 { 200 "FEAT_DESC": "PERSON", 201 "LIB_FEAT_ID": 10 202 } 203 ] 204 } 205 ] 206 }, 207 "RECORD_SUMMARY": [ 208 { 209 "DATA_SOURCE": "TEST", 210 "RECORD_COUNT": 1 211 }, 212 { 213 "DATA_SOURCE": "CUSTOMERS", 214 "RECORD_COUNT": 4 215 } 216 ] 217 } 218 } 219 }, 220 { 221 "MATCH_INFO": { 222 "MATCH_LEVEL_CODE": "POSSIBLY_SAME", 223 "MATCH_KEY": "+NAME", 224 "ERRULE_CODE": "SNAME", 225 "CANDIDATE_KEYS": { 226 "NAME_KEY": [ 227 { 228 "FEAT_ID": 6, 229 "FEAT_DESC": "RPRT|SM0" 230 } 231 ] 232 }, 233 "FEATURE_SCORES": { 234 "NAME": [ 235 { 236 "INBOUND_FEAT_ID": -2, 237 "INBOUND_FEAT_DESC": "Bob Smith", 238 "INBOUND_FEAT_USAGE_TYPE": "", 239 "CANDIDATE_FEAT_ID": 200087, 240 "CANDIDATE_FEAT_DESC": "Robbie Smith", 241 "CANDIDATE_FEAT_USAGE_TYPE": "PRIMARY", 242 "SCORE": 97, 243 "ADDITIONAL_SCORES": { 244 "GNR_FN": 97, 245 "GNR_SN": -1, 246 "GNR_GN": -1, 247 "GENERATION_MATCH": -1, 248 "GNR_ON": -1 249 }, 250 "SCORE_BUCKET": "CLOSE", 251 "SCORE_BEHAVIOR": "NAME" 252 } 253 ] 254 } 255 }, 256 "ENTITY": { 257 "RESOLVED_ENTITY": { 258 "ENTITY_ID": 400015, 259 "ENTITY_NAME": "Robert E Smith Sr", 260 "FEATURES": { 261 "ADDRESS": [ 262 { 263 "FEAT_DESC": "123 E Main St Henderson NV 89132", 264 "LIB_FEAT_ID": 200088, 265 "USAGE_TYPE": "MAILING", 266 "FEAT_DESC_VALUES": [ 267 { 268 "FEAT_DESC": "123 E Main St Henderson NV 89132", 269 "LIB_FEAT_ID": 200088 270 } 271 ] 272 }, 273 { 274 "FEAT_DESC": "123 Main St, Las Vegas", 275 "LIB_FEAT_ID": 201464, 276 "USAGE_TYPE": "MAILING", 277 "FEAT_DESC_VALUES": [ 278 { 279 "FEAT_DESC": "123 Main St, Las Vegas", 280 "LIB_FEAT_ID": 201464 281 } 282 ] 283 } 284 ], 285 "DOB": [ 286 { 287 "FEAT_DESC": "3/31/1954", 288 "LIB_FEAT_ID": 201463, 289 "FEAT_DESC_VALUES": [ 290 { 291 "FEAT_DESC": "3/31/1954", 292 "LIB_FEAT_ID": 201463 293 } 294 ] 295 } 296 ], 297 "DRLIC": [ 298 { 299 "FEAT_DESC": "112233 NV", 300 "LIB_FEAT_ID": 200089, 301 "FEAT_DESC_VALUES": [ 302 { 303 "FEAT_DESC": "112233 NV", 304 "LIB_FEAT_ID": 200089 305 } 306 ] 307 } 308 ], 309 "NAME": [ 310 { 311 "FEAT_DESC": "Robert E Smith Sr", 312 "LIB_FEAT_ID": 201462, 313 "USAGE_TYPE": "PRIMARY", 314 "FEAT_DESC_VALUES": [ 315 { 316 "FEAT_DESC": "Robert E Smith Sr", 317 "LIB_FEAT_ID": 201462 318 }, 319 { 320 "FEAT_DESC": "Robbie Smith", 321 "LIB_FEAT_ID": 200087 322 } 323 ] 324 } 325 ], 326 "RECORD_TYPE": [ 327 { 328 "FEAT_DESC": "PERSON", 329 "LIB_FEAT_ID": 10, 330 "FEAT_DESC_VALUES": [ 331 { 332 "FEAT_DESC": "PERSON", 333 "LIB_FEAT_ID": 10 334 } 335 ] 336 } 337 ] 338 }, 339 "RECORD_SUMMARY": [ 340 { 341 "DATA_SOURCE": "CUSTOMERS", 342 "RECORD_COUNT": 1 343 }, 344 { 345 "DATA_SOURCE": "WATCHLIST", 346 "RECORD_COUNT": 1 347 } 348 ] 349 } 350 } 351 }, 352 { 353 "MATCH_INFO": { 354 "MATCH_LEVEL_CODE": "POSSIBLY_SAME", 355 "MATCH_KEY": "+NAME", 356 "ERRULE_CODE": "SNAME", 357 "CANDIDATE_KEYS": { 358 "NAME_KEY": [ 359 { 360 "FEAT_ID": 6, 361 "FEAT_DESC": "RPRT|SM0" 362 } 363 ] 364 }, 365 "FEATURE_SCORES": { 366 "EMAIL": [ 367 { 368 "INBOUND_FEAT_ID": 5, 369 "INBOUND_FEAT_DESC": "bsmith@work.com", 370 "INBOUND_FEAT_USAGE_TYPE": "", 371 "CANDIDATE_FEAT_ID": 201427, 372 "CANDIDATE_FEAT_DESC": "robert.smith@email.com", 373 "CANDIDATE_FEAT_USAGE_TYPE": "", 374 "SCORE": 0, 375 "ADDITIONAL_SCORES": { 376 "FULL_SCORE": 0 377 }, 378 "SCORE_BUCKET": "NO_CHANCE", 379 "SCORE_BEHAVIOR": "F1" 380 } 381 ], 382 "NAME": [ 383 { 384 "INBOUND_FEAT_ID": -2, 385 "INBOUND_FEAT_DESC": "Bob Smith", 386 "INBOUND_FEAT_USAGE_TYPE": "", 387 "CANDIDATE_FEAT_ID": 1, 388 "CANDIDATE_FEAT_DESC": "Robert Smith", 389 "CANDIDATE_FEAT_USAGE_TYPE": "PRIMARY", 390 "SCORE": 97, 391 "ADDITIONAL_SCORES": { 392 "GNR_FN": 97, 393 "GNR_SN": -1, 394 "GNR_GN": -1, 395 "GENERATION_MATCH": -1, 396 "GNR_ON": -1 397 }, 398 "SCORE_BUCKET": "CLOSE", 399 "SCORE_BEHAVIOR": "NAME" 400 } 401 ] 402 } 403 }, 404 "ENTITY": { 405 "RESOLVED_ENTITY": { 406 "ENTITY_ID": 400204, 407 "ENTITY_NAME": "Robert Smith", 408 "FEATURES": { 409 "EMAIL": [ 410 { 411 "FEAT_DESC": "robert.smith@email.com", 412 "LIB_FEAT_ID": 201427, 413 "FEAT_DESC_VALUES": [ 414 { 415 "FEAT_DESC": "robert.smith@email.com", 416 "LIB_FEAT_ID": 201427 417 } 418 ] 419 } 420 ], 421 "NAME": [ 422 { 423 "FEAT_DESC": "Robert Smith", 424 "LIB_FEAT_ID": 1, 425 "USAGE_TYPE": "PRIMARY", 426 "FEAT_DESC_VALUES": [ 427 { 428 "FEAT_DESC": "Robert Smith", 429 "LIB_FEAT_ID": 1 430 } 431 ] 432 } 433 ], 434 "RECORD_TYPE": [ 435 { 436 "FEAT_DESC": "PERSON", 437 "LIB_FEAT_ID": 10, 438 "FEAT_DESC_VALUES": [ 439 { 440 "FEAT_DESC": "PERSON", 441 "LIB_FEAT_ID": 10 442 } 443 ] 444 } 445 ] 446 }, 447 "RECORD_SUMMARY": [ 448 { 449 "DATA_SOURCE": "WATCHLIST", 450 "RECORD_COUNT": 1 451 } 452 ] 453 } 454 } 455 } 456 ], 457 "SEARCH_STATISTICS": [ 458 { 459 "CANDIDATE_KEYS": { 460 "FEATURE_TYPES": [ 461 { 462 "FTYPE_CODE": "NAME_KEY", 463 "FOUND": 2, 464 "NOT_FOUND": 0, 465 "GENERIC": 0 466 }, 467 { 468 "FTYPE_CODE": "EMAIL_KEY", 469 "FOUND": 1, 470 "NOT_FOUND": 0, 471 "GENERIC": 0 472 } 473 ], 474 "SUMMARY": { 475 "FOUND": 3, 476 "NOT_FOUND": 0, 477 "GENERIC": 0 478 } 479 } 480 } 481 ] 482}
- abstractmethod why_entities(entity_id_1: int, entity_id_2: int, flags: int = <SzEngineFlags.SZ_INCLUDE_FEATURE_SCORES: 67108864>) str [source]
The why_entities method describes the ways two entities relate to each other.
- Parameters:
entity_id_1 (int) – The entity ID for the starting entity of the search path.
entity_id_2 (int) – The entity ID for the ending entity of the search path.
flags (int, optional) – Flags used to control information returned. Defaults to SzEngineFlags.SZ_WHY_ENTITIES_DEFAULT_FLAGS.
- Returns:
A JSON document.
- Return type:
str
Raises:
Example:
1from senzing import SzEngineFlags, SzError 2 3from . import sz_engine 4 5entity_id_1 = 1 6entity_id_2 = 400215 7flags = SzEngineFlags.SZ_WHY_ENTITIES_DEFAULT_FLAGS 8 9try: 10 result = sz_engine.why_entities( 11 entity_id_1, 12 entity_id_2, 13 flags, 14 ) 15 print(f"\n{result}\n") 16except SzError as err: 17 print(f"\nERROR: {err}\n")
Output:
1// Output has been formatted for easier reading. 2 3{ 4 "WHY_RESULTS": [ 5 { 6 "ENTITY_ID": 1, 7 "ENTITY_ID_2": 400215, 8 "MATCH_INFO": { 9 "WHY_KEY": "+SURNAME+ADDRESS", 10 "WHY_ERRULE_CODE": "CFF_SURNAME", 11 "MATCH_LEVEL_CODE": "POSSIBLY_RELATED", 12 "CANDIDATE_KEYS": { 13 "ADDR_KEY": [ 14 { 15 "FEAT_ID": 200049, 16 "FEAT_DESC": "1515|ATL||89132" 17 } 18 ] 19 }, 20 "FEATURE_SCORES": { 21 "ADDRESS": [ 22 { 23 "INBOUND_FEAT_ID": 200046, 24 "INBOUND_FEAT_DESC": "1515 Adela Ln Las Vegas NV 89132", 25 "INBOUND_FEAT_USAGE_TYPE": "HOME", 26 "CANDIDATE_FEAT_ID": 201474, 27 "CANDIDATE_FEAT_DESC": "1515 Adela Ln, LV, NV 89132", 28 "CANDIDATE_FEAT_USAGE_TYPE": "HOME", 29 "SCORE": 100, 30 "ADDITIONAL_SCORES": { 31 "FULL_SCORE": 100 32 }, 33 "SCORE_BUCKET": "SAME", 34 "SCORE_BEHAVIOR": "FF" 35 } 36 ], 37 "EMAIL": [ 38 { 39 "INBOUND_FEAT_ID": 5, 40 "INBOUND_FEAT_DESC": "bsmith@work.com", 41 "INBOUND_FEAT_USAGE_TYPE": "", 42 "CANDIDATE_FEAT_ID": 201475, 43 "CANDIDATE_FEAT_DESC": "psmith@email.com", 44 "CANDIDATE_FEAT_USAGE_TYPE": "", 45 "SCORE": 0, 46 "ADDITIONAL_SCORES": { 47 "FULL_SCORE": 0 48 }, 49 "SCORE_BUCKET": "NO_CHANCE", 50 "SCORE_BEHAVIOR": "F1" 51 } 52 ], 53 "NAME": [ 54 { 55 "INBOUND_FEAT_ID": 1, 56 "INBOUND_FEAT_DESC": "Robert Smith", 57 "INBOUND_FEAT_USAGE_TYPE": "PRIMARY", 58 "CANDIDATE_FEAT_ID": 200291, 59 "CANDIDATE_FEAT_DESC": "Patricia Smith", 60 "CANDIDATE_FEAT_USAGE_TYPE": "PRIMARY", 61 "SCORE": 49, 62 "ADDITIONAL_SCORES": { 63 "GNR_FN": 49, 64 "GNR_SN": 100, 65 "GNR_GN": 0, 66 "GENERATION_MATCH": -1, 67 "GNR_ON": -1 68 }, 69 "SCORE_BUCKET": "NO_CHANCE", 70 "SCORE_BEHAVIOR": "NAME" 71 } 72 ], 73 "RECORD_TYPE": [ 74 { 75 "INBOUND_FEAT_ID": 10, 76 "INBOUND_FEAT_DESC": "PERSON", 77 "INBOUND_FEAT_USAGE_TYPE": "", 78 "CANDIDATE_FEAT_ID": 10, 79 "CANDIDATE_FEAT_DESC": "PERSON", 80 "CANDIDATE_FEAT_USAGE_TYPE": "", 81 "SCORE": 100, 82 "ADDITIONAL_SCORES": { 83 "FULL_SCORE": 100 84 }, 85 "SCORE_BUCKET": "SAME", 86 "SCORE_BEHAVIOR": "FVME" 87 } 88 ] 89 }, 90 "DISCLOSED_RELATIONS": {} 91 } 92 } 93 ], 94 "ENTITIES": [ 95 { 96 "RESOLVED_ENTITY": { 97 "ENTITY_ID": 1 98 } 99 }, 100 { 101 "RESOLVED_ENTITY": { 102 "ENTITY_ID": 400215 103 } 104 } 105 ] 106}
- abstractmethod why_record_in_entity(data_source_code: str, record_id: str, flags: int = <SzEngineFlags.SZ_INCLUDE_FEATURE_SCORES: 67108864>) str [source]
The why_record_in_entity method describes the ways a record relates to the rest of its respective entity.
- Parameters:
data_source_code (str) – Identifies the provenance of the data.
record_id (str) – The unique identifier within the records of the same data source.
flags (int, optional) – Flags used to control information returned. Defaults to SzEngineFlags.SZ_WHY_RECORD_IN_ENTITY_DEFAULT_FLAGS.
- Returns:
A JSON document.
- Return type:
str
Raises:
Example:
1from senzing import SzEngineFlags, SzError 2 3from . import sz_engine 4 5data_source_code = "CUSTOMERS" 6flags = SzEngineFlags.SZ_WHY_RECORD_IN_ENTITY_DEFAULT_FLAGS 7record_id = "1001" 8 9try: 10 result = sz_engine.why_record_in_entity( 11 data_source_code, 12 record_id, 13 flags, 14 ) 15 print(f"\n{result}\n") 16except SzError as err: 17 print(f"\nERROR: {err}\n")
Output:
1// Output has been formatted for easier reading. 2 3{ 4 "WHY_RESULTS": [ 5 { 6 "INTERNAL_ID": 500001, 7 "ENTITY_ID": 1, 8 "FOCUS_RECORDS": [ 9 { 10 "DATA_SOURCE": "CUSTOMERS", 11 "RECORD_ID": "1001" 12 } 13 ], 14 "MATCH_INFO": { 15 "WHY_KEY": "+NAME+DOB+ADDRESS+PHONE+EMAIL", 16 "WHY_ERRULE_CODE": "SF1_SNAME_CFF_CSTAB", 17 "MATCH_LEVEL_CODE": "RESOLVED", 18 "CANDIDATE_KEYS": { 19 "ADDR_KEY": [ 20 { 21 "FEAT_ID": 7, 22 "FEAT_DESC": "123|MN||LS FKS" 23 }, 24 { 25 "FEAT_ID": 8, 26 "FEAT_DESC": "123|MN||89132" 27 } 28 ], 29 "DOB": [ 30 { 31 "FEAT_ID": 2, 32 "FEAT_DESC": "12/11/1978" 33 } 34 ], 35 "EMAIL_KEY": [ 36 { 37 "FEAT_ID": 11, 38 "FEAT_DESC": "bsmith@WORK.COM" 39 } 40 ], 41 "NAMEADDR_KEY": [ 42 { 43 "FEAT_ID": 12, 44 "FEAT_DESC": "RPRT|SM0|ADDR_KEY.EXPRESSION=123|MN||89132" 45 }, 46 { 47 "FEAT_ID": 13, 48 "FEAT_DESC": "RPRT|SM0|ADDR_KEY.EXPRESSION=123|MN||LS FKS" 49 } 50 ], 51 "NAMEDATE_KEY": [ 52 { 53 "FEAT_ID": 14, 54 "FEAT_DESC": "RPRT|SM0|DOB.MMDD_HASH=1211" 55 }, 56 { 57 "FEAT_ID": 15, 58 "FEAT_DESC": "RPRT|SM0|DOB=71211" 59 }, 60 { 61 "FEAT_ID": 16, 62 "FEAT_DESC": "RPRT|SM0|DOB.MMYY_HASH=1278" 63 } 64 ], 65 "NAMEPHONE_KEY": [ 66 { 67 "FEAT_ID": 19, 68 "FEAT_DESC": "RPRT|SM0|PHONE.PHONE_LAST_5=91300" 69 } 70 ], 71 "NAMEREGION_KEY": [ 72 { 73 "FEAT_ID": 17, 74 "FEAT_DESC": "RPRT|SM0|POST=89132" 75 }, 76 { 77 "FEAT_ID": 18, 78 "FEAT_DESC": "RPRT|SM0|ADDRESS.CITY_STD=LS FKS" 79 } 80 ], 81 "NAME_KEY": [ 82 { 83 "FEAT_ID": 6, 84 "FEAT_DESC": "RPRT|SM0" 85 } 86 ], 87 "PHONE_KEY": [ 88 { 89 "FEAT_ID": 9, 90 "FEAT_DESC": "7029191300" 91 } 92 ] 93 }, 94 "FEATURE_SCORES": { 95 "ADDRESS": [ 96 { 97 "INBOUND_FEAT_ID": 3, 98 "INBOUND_FEAT_DESC": "123 Main Street, Las Vegas NV 89132", 99 "INBOUND_FEAT_USAGE_TYPE": "MAILING", 100 "CANDIDATE_FEAT_ID": 3, 101 "CANDIDATE_FEAT_DESC": "123 Main Street, Las Vegas NV 89132", 102 "CANDIDATE_FEAT_USAGE_TYPE": "MAILING", 103 "SCORE": 100, 104 "ADDITIONAL_SCORES": { 105 "FULL_SCORE": 100 106 }, 107 "SCORE_BUCKET": "SAME", 108 "SCORE_BEHAVIOR": "FF" 109 } 110 ], 111 "DOB": [ 112 { 113 "INBOUND_FEAT_ID": 2, 114 "INBOUND_FEAT_DESC": "12/11/1978", 115 "INBOUND_FEAT_USAGE_TYPE": "", 116 "CANDIDATE_FEAT_ID": 2, 117 "CANDIDATE_FEAT_DESC": "12/11/1978", 118 "CANDIDATE_FEAT_USAGE_TYPE": "", 119 "SCORE": 100, 120 "ADDITIONAL_SCORES": { 121 "FULL_SCORE": 100 122 }, 123 "SCORE_BUCKET": "SAME", 124 "SCORE_BEHAVIOR": "FMES" 125 } 126 ], 127 "EMAIL": [ 128 { 129 "INBOUND_FEAT_ID": 5, 130 "INBOUND_FEAT_DESC": "bsmith@work.com", 131 "INBOUND_FEAT_USAGE_TYPE": "", 132 "CANDIDATE_FEAT_ID": 5, 133 "CANDIDATE_FEAT_DESC": "bsmith@work.com", 134 "CANDIDATE_FEAT_USAGE_TYPE": "", 135 "SCORE": 100, 136 "ADDITIONAL_SCORES": { 137 "FULL_SCORE": 100 138 }, 139 "SCORE_BUCKET": "SAME", 140 "SCORE_BEHAVIOR": "F1" 141 } 142 ], 143 "NAME": [ 144 { 145 "INBOUND_FEAT_ID": 1, 146 "INBOUND_FEAT_DESC": "Robert Smith", 147 "INBOUND_FEAT_USAGE_TYPE": "PRIMARY", 148 "CANDIDATE_FEAT_ID": 1, 149 "CANDIDATE_FEAT_DESC": "Robert Smith", 150 "CANDIDATE_FEAT_USAGE_TYPE": "PRIMARY", 151 "SCORE": 100, 152 "ADDITIONAL_SCORES": { 153 "GNR_FN": 100, 154 "GNR_SN": 100, 155 "GNR_GN": 100, 156 "GENERATION_MATCH": -1, 157 "GNR_ON": -1 158 }, 159 "SCORE_BUCKET": "SAME", 160 "SCORE_BEHAVIOR": "NAME" 161 } 162 ], 163 "PHONE": [ 164 { 165 "INBOUND_FEAT_ID": 4, 166 "INBOUND_FEAT_DESC": "702-919-1300", 167 "INBOUND_FEAT_USAGE_TYPE": "HOME", 168 "CANDIDATE_FEAT_ID": 4, 169 "CANDIDATE_FEAT_DESC": "702-919-1300", 170 "CANDIDATE_FEAT_USAGE_TYPE": "HOME", 171 "SCORE": 100, 172 "ADDITIONAL_SCORES": { 173 "FULL_SCORE": 100 174 }, 175 "SCORE_BUCKET": "SAME", 176 "SCORE_BEHAVIOR": "FF" 177 } 178 ], 179 "RECORD_TYPE": [ 180 { 181 "INBOUND_FEAT_ID": 10, 182 "INBOUND_FEAT_DESC": "PERSON", 183 "INBOUND_FEAT_USAGE_TYPE": "", 184 "CANDIDATE_FEAT_ID": 10, 185 "CANDIDATE_FEAT_DESC": "PERSON", 186 "CANDIDATE_FEAT_USAGE_TYPE": "", 187 "SCORE": 100, 188 "ADDITIONAL_SCORES": { 189 "FULL_SCORE": 100 190 }, 191 "SCORE_BUCKET": "SAME", 192 "SCORE_BEHAVIOR": "FVME" 193 } 194 ] 195 } 196 } 197 } 198 ], 199 "ENTITIES": [ 200 { 201 "RESOLVED_ENTITY": { 202 "ENTITY_ID": 1 203 } 204 } 205 ] 206}
- abstractmethod why_records(data_source_code_1: str, record_id_1: str, data_source_code_2: str, record_id_2: str, flags: int = <SzEngineFlags.SZ_INCLUDE_FEATURE_SCORES: 67108864>) str [source]
The why_records method describes the ways two records relate to each other.
- Parameters:
data_source_code_1 (str) – Identifies the provenance of the data.
record_id_1 (str) – The unique identifier within the records of the same data source.
data_source_code_2 (str) – Identifies the provenance of the data.
record_id_2 (str) – The unique identifier within the records of the same data source.
flags (int, optional) – Flags used to control information returned. Defaults to SzEngineFlags.SZ_WHY_RECORDS_DEFAULT_FLAGS.
- Returns:
A JSON document.
- Return type:
str
Raises:
Example:
1from senzing import SzEngineFlags, SzError 2 3from . import sz_engine 4 5data_source_code_1 = "CUSTOMERS" 6data_source_code_2 = "CUSTOMERS" 7flags = SzEngineFlags.SZ_WHY_RECORDS_DEFAULT_FLAGS 8record_id_1 = "1001" 9record_id_2 = "1002" 10 11try: 12 result = sz_engine.why_records( 13 data_source_code_1, 14 record_id_1, 15 data_source_code_2, 16 record_id_2, 17 flags, 18 ) 19 print(f"\n{result}\n") 20except SzError as err: 21 print(f"\nERROR: {err}\n")
Output:
1// Output has been formatted and pruned for easier reading. 2 3{ 4 "WHY_RESULTS": [ 5 { 6 "INTERNAL_ID": 500001, 7 "ENTITY_ID": 1, 8 "FOCUS_RECORDS": [ 9 { 10 "DATA_SOURCE": "CUSTOMERS", 11 "RECORD_ID": "1001" 12 } 13 ], 14 "INTERNAL_ID_2": 400011, 15 "ENTITY_ID_2": 1, 16 "FOCUS_RECORDS_2": [ 17 { 18 "DATA_SOURCE": "CUSTOMERS", 19 "RECORD_ID": "1002" 20 } 21 ], 22 "MATCH_INFO": { 23 "WHY_KEY": "+NAME+DOB+PHONE", 24 "WHY_ERRULE_CODE": "CNAME_CFF_CEXCL", 25 "MATCH_LEVEL_CODE": "RESOLVED", 26 "CANDIDATE_KEYS": { 27 "NAMEDATE_KEY": [ 28 { 29 "FEAT_ID": 14, 30 "FEAT_DESC": "RPRT|SM0|DOB.MMDD_HASH=1211" 31 }, 32 { 33 "FEAT_ID": 15, 34 "FEAT_DESC": "RPRT|SM0|DOB=71211" 35 } 36 ], 37 "NAMEPHONE_KEY": [ 38 { 39 "FEAT_ID": 19, 40 "FEAT_DESC": "RPRT|SM0|PHONE.PHONE_LAST_5=91300" 41 } 42 ], 43 "NAMEREGION_KEY": [ 44 { 45 "FEAT_ID": 18, 46 "FEAT_DESC": "RPRT|SM0|ADDRESS.CITY_STD=LS FKS" 47 } 48 ], 49 "NAME_KEY": [ 50 { 51 "FEAT_ID": 6, 52 "FEAT_DESC": "RPRT|SM0" 53 } 54 ], 55 "PHONE_KEY": [ 56 { 57 "FEAT_ID": 9, 58 "FEAT_DESC": "7029191300" 59 } 60 ] 61 }, 62 "FEATURE_SCORES": { 63 "ADDRESS": [ 64 { 65 "INBOUND_FEAT_ID": 3, 66 "INBOUND_FEAT_DESC": "123 Main Street, Las Vegas NV 89132", 67 "INBOUND_FEAT_USAGE_TYPE": "MAILING", 68 "CANDIDATE_FEAT_ID": 200059, 69 "CANDIDATE_FEAT_DESC": "1515 Adela Lane Las Vegas NV 89111", 70 "CANDIDATE_FEAT_USAGE_TYPE": "HOME", 71 "SCORE": 42, 72 "ADDITIONAL_SCORES": { 73 "FULL_SCORE": 42 74 }, 75 "SCORE_BUCKET": "NO_CHANCE", 76 "SCORE_BEHAVIOR": "FF" 77 } 78 ], 79 "DOB": [ 80 { 81 "INBOUND_FEAT_ID": 2, 82 "INBOUND_FEAT_DESC": "12/11/1978", 83 "INBOUND_FEAT_USAGE_TYPE": "", 84 "CANDIDATE_FEAT_ID": 200058, 85 "CANDIDATE_FEAT_DESC": "11/12/1978", 86 "CANDIDATE_FEAT_USAGE_TYPE": "", 87 "SCORE": 95, 88 "ADDITIONAL_SCORES": { 89 "FULL_SCORE": 95 90 }, 91 "SCORE_BUCKET": "CLOSE", 92 "SCORE_BEHAVIOR": "FMES" 93 } 94 ], 95 "NAME": [ 96 { 97 "INBOUND_FEAT_ID": 1, 98 "INBOUND_FEAT_DESC": "Robert Smith", 99 "INBOUND_FEAT_USAGE_TYPE": "PRIMARY", 100 "CANDIDATE_FEAT_ID": 200057, 101 "CANDIDATE_FEAT_DESC": "Bob Smith", 102 "CANDIDATE_FEAT_USAGE_TYPE": "PRIMARY", 103 "SCORE": 97, 104 "ADDITIONAL_SCORES": { 105 "GNR_FN": 97, 106 "GNR_SN": 100, 107 "GNR_GN": 95, 108 "GENERATION_MATCH": -1, 109 "GNR_ON": -1 110 }, 111 "SCORE_BUCKET": "CLOSE", 112 "SCORE_BEHAVIOR": "NAME" 113 } 114 ], 115 "PHONE": [ 116 { 117 "INBOUND_FEAT_ID": 4, 118 "INBOUND_FEAT_DESC": "702-919-1300", 119 "INBOUND_FEAT_USAGE_TYPE": "HOME", 120 "CANDIDATE_FEAT_ID": 4, 121 "CANDIDATE_FEAT_DESC": "702-919-1300", 122 "CANDIDATE_FEAT_USAGE_TYPE": "MOBILE", 123 "SCORE": 100, 124 "ADDITIONAL_SCORES": { 125 "FULL_SCORE": 100 126 }, 127 "SCORE_BUCKET": "SAME", 128 "SCORE_BEHAVIOR": "FF" 129 } 130 ], 131 "RECORD_TYPE": [ 132 { 133 "INBOUND_FEAT_ID": 10, 134 "INBOUND_FEAT_DESC": "PERSON", 135 "INBOUND_FEAT_USAGE_TYPE": "", 136 "CANDIDATE_FEAT_ID": 10, 137 "CANDIDATE_FEAT_DESC": "PERSON", 138 "CANDIDATE_FEAT_USAGE_TYPE": "", 139 "SCORE": 100, 140 "ADDITIONAL_SCORES": { 141 "FULL_SCORE": 100 142 }, 143 "SCORE_BUCKET": "SAME", 144 "SCORE_BEHAVIOR": "FVME" 145 } 146 ] 147 }, 148 "DISCLOSED_RELATIONS": {} 149 } 150 } 151 ], 152 "ENTITIES": [ 153 { 154 "RESOLVED_ENTITY": { 155 "ENTITY_ID": 1 156 } 157 } 158 ] 159}
- abstractmethod why_search(attributes: str, entity_id: int, flags: int = <SzEngineFlags.SZ_WHY_SEARCH_DEFAULT_FLAGS: 275079233536>, search_profile: str = '') str [source]
The why_search method describes the ways a set of search attributes relate to an entity.
- Parameters:
attributes (str) – A JSON document with the attribute data to search for.
entity_id (int) – The identifier of the entity to retrieve.
flags (int, optional) – _description_. Defaults to SzEngineFlags.SZ_WHY_SEARCH_DEFAULT_FLAGS.
search_profile (str) – The name of a configured search profile. Defaults to SEARCH.
- Returns:
A JSON document.
- Return type:
str
Raises:
Example:
1import json 2 3from senzing import SzEngineFlags, SzError 4 5from . import sz_engine 6 7attributes = json.dumps({"NAME_FULL": "BOB SMITH", "EMAIL_ADDRESS": "bsmith@work.com"}) 8entity_id = 1 9flags = SzEngineFlags.SZ_WHY_SEARCH_DEFAULT_FLAGS 10 11try: 12 result = sz_engine.why_search(attributes, entity_id, flags) 13 print(f"\n{result}\n") 14except SzError as err: 15 print(f"\nERROR: {err}\n")
Output:
1// Output has been formatted for easier reading. 2 3{ 4 "WHY_RESULTS": [ 5 { 6 "ENTITY_ID": 1, 7 "MATCH_INFO": { 8 "WHY_KEY": "+NAME+EMAIL", 9 "WHY_ERRULE_CODE": "SF1_CNAME", 10 "MATCH_LEVEL_CODE": "RESOLVED", 11 "CANDIDATE_KEYS": { 12 "EMAIL_KEY": [ 13 { 14 "FEAT_ID": 11, 15 "FEAT_DESC": "bsmith@WORK.COM" 16 } 17 ], 18 "NAME_KEY": [ 19 { 20 "FEAT_ID": 6, 21 "FEAT_DESC": "RPRT|SM0" 22 }, 23 { 24 "FEAT_ID": 200002, 25 "FEAT_DESC": "PP|SM0" 26 } 27 ] 28 }, 29 "FEATURE_SCORES": { 30 "EMAIL": [ 31 { 32 "INBOUND_FEAT_ID": 5, 33 "INBOUND_FEAT_DESC": "bsmith@work.com", 34 "INBOUND_FEAT_USAGE_TYPE": "", 35 "CANDIDATE_FEAT_ID": 5, 36 "CANDIDATE_FEAT_DESC": "bsmith@work.com", 37 "CANDIDATE_FEAT_USAGE_TYPE": "", 38 "SCORE": 100, 39 "ADDITIONAL_SCORES": { 40 "FULL_SCORE": 100 41 }, 42 "SCORE_BUCKET": "SAME", 43 "SCORE_BEHAVIOR": "F1" 44 } 45 ], 46 "NAME": [ 47 { 48 "INBOUND_FEAT_ID": -2, 49 "INBOUND_FEAT_DESC": "BOB SMITH", 50 "INBOUND_FEAT_USAGE_TYPE": "", 51 "CANDIDATE_FEAT_ID": 1, 52 "CANDIDATE_FEAT_DESC": "Robert Smith", 53 "CANDIDATE_FEAT_USAGE_TYPE": "PRIMARY", 54 "SCORE": 97, 55 "ADDITIONAL_SCORES": { 56 "GNR_FN": 97, 57 "GNR_SN": -1, 58 "GNR_GN": -1, 59 "GENERATION_MATCH": -1, 60 "GNR_ON": -1 61 }, 62 "SCORE_BUCKET": "CLOSE", 63 "SCORE_BEHAVIOR": "NAME" 64 } 65 ] 66 }, 67 "DISCLOSED_RELATIONS": {} 68 } 69 } 70 ], 71 "SEARCH_REQUEST": { 72 "JSON_DATA": "{\"NAME_FULL\": \"BOB SMITH\", \"EMAIL_ADDRESS\": \"bsmith@work.com\"}", 73 "SEARCH_PROFILE": "SEARCH", 74 "FEATURES": { 75 "NAME": [ 76 { 77 "LIB_FEAT_ID": -2, 78 "USAGE_TYPE": "", 79 "FEAT_DESC": "BOB SMITH", 80 "ATTRIBUTES": { 81 "NAME_FULL": "BOB SMITH" 82 }, 83 "USED_FOR_CAND": "N", 84 "USED_FOR_SCORING": "Y", 85 "ENTITY_COUNT": 0, 86 "CANDIDATE_CAP_REACHED": "N", 87 "SCORING_CAP_REACHED": "N" 88 } 89 ], 90 "EMAIL": [ 91 { 92 "LIB_FEAT_ID": 5, 93 "USAGE_TYPE": "", 94 "FEAT_DESC": "bsmith@work.com", 95 "ATTRIBUTES": { 96 "EMAIL_ADDRESS": "bsmith@work.com" 97 }, 98 "USED_FOR_CAND": "N", 99 "USED_FOR_SCORING": "Y", 100 "ENTITY_COUNT": 1, 101 "CANDIDATE_CAP_REACHED": "N", 102 "SCORING_CAP_REACHED": "N" 103 } 104 ], 105 "NAME_KEY": [ 106 { 107 "LIB_FEAT_ID": 6, 108 "FEAT_DESC": "RPRT|SM0", 109 "USED_FOR_CAND": "Y", 110 "USED_FOR_SCORING": "N", 111 "ENTITY_COUNT": 3, 112 "CANDIDATE_CAP_REACHED": "N", 113 "SCORING_CAP_REACHED": "N" 114 }, 115 { 116 "LIB_FEAT_ID": 200002, 117 "FEAT_DESC": "PP|SM0", 118 "USED_FOR_CAND": "Y", 119 "USED_FOR_SCORING": "N", 120 "ENTITY_COUNT": 1, 121 "CANDIDATE_CAP_REACHED": "N", 122 "SCORING_CAP_REACHED": "N" 123 } 124 ], 125 "EMAIL_KEY": [ 126 { 127 "LIB_FEAT_ID": 11, 128 "FEAT_DESC": "bsmith@WORK.COM", 129 "USED_FOR_CAND": "Y", 130 "USED_FOR_SCORING": "N", 131 "ENTITY_COUNT": 1, 132 "CANDIDATE_CAP_REACHED": "N", 133 "SCORING_CAP_REACHED": "N" 134 } 135 ] 136 } 137 }, 138 "SEARCH_STATISTICS": [ 139 { 140 "CANDIDATE_KEYS": { 141 "FEATURE_TYPES": [ 142 { 143 "FTYPE_CODE": "NAME_KEY", 144 "FOUND": 2, 145 "NOT_FOUND": 0, 146 "GENERIC": 0 147 }, 148 { 149 "FTYPE_CODE": "EMAIL_KEY", 150 "FOUND": 1, 151 "NOT_FOUND": 0, 152 "GENERIC": 0 153 } 154 ], 155 "SUMMARY": { 156 "FOUND": 3, 157 "NOT_FOUND": 0, 158 "GENERIC": 0 159 } 160 } 161 } 162 ], 163 "ENTITIES": [ 164 { 165 "RESOLVED_ENTITY": { 166 "ENTITY_ID": 1 167 } 168 } 169 ] 170}
szproduct
szproduct.py is the abstract class for all implementations of SzProduct.
- class senzing.szproduct.SzProduct[source]
Bases:
ABC
SzProduct is the definition of the Senzing Python SDK that is implemented by packages such as szproduct.py.
- abstractmethod get_license() str [source]
The get_license method gets the product license details.
- Returns:
A JSON document containing Senzing license metadata.
- Return type:
str
Example:
1from senzing import SzError 2 3from . import sz_product 4 5try: 6 result = sz_product.get_license() 7 print(f"\n{result}\n") 8except SzError as err: 9 print(f"\nERROR: {err}\n")
Output:
1// Output has been formatted for easier reading. 2 3{ 4 "customer": "Senzing Public Test License", 5 "contract": "EVALUATION - support@senzing.com", 6 "issueDate": "2024-10-15", 7 "licenseType": "EVAL (Solely for non-productive use)", 8 "licenseLevel": "STANDARD", 9 "billing": "MONTHLY", 10 "expireDate": "2025-10-16", 11 "recordLimit": 500 12}
- abstractmethod get_version() str [source]
The get_version method gets the product version details. :returns: A JSON document containing metadata about the Senzing Engine version being used. :rtype: str
Example:
1from senzing import SzError 2 3from . import sz_product 4 5try: 6 result = sz_product.get_version() 7 print(f"\n{result}\n") 8except SzError as err: 9 print(f"\nERROR: {err}\n")
Output:
1// Output has been formatted for easier reading. 2 3{ 4 "PRODUCT_NAME": "Senzing SDK", 5 "VERSION": "4.0.0", 6 "BUILD_VERSION": "4.0.0.24289", 7 "BUILD_DATE": "2024-10-15", 8 "BUILD_NUMBER": "2024_10_15__14_21", 9 "COMPATIBILITY_VERSION": { 10 "CONFIG_VERSION": "11" 11 }, 12 "SCHEMA_VERSION": { 13 "ENGINE_SCHEMA_VERSION": "4.0", 14 "MINIMUM_REQUIRED_SCHEMA_VERSION": "4.0", 15 "MAXIMUM_REQUIRED_SCHEMA_VERSION": "4.99" 16 } 17}
szengineflags
szengineflags.py has constants that are used when calling Senzing functions.
- class senzing.szengineflags.SzEngineFlags(*values)[source]
Bases:
IntFlag
Engine Flags
- SZ_ADD_RECORD_DEFAULT_FLAGS = 0
- SZ_DELETE_RECORD_DEFAULT_FLAGS = 0
- SZ_ENTITY_BRIEF_DEFAULT_FLAGS = 1082304
- SZ_ENTITY_CORE_FLAGS = 63488
- SZ_ENTITY_DEFAULT_FLAGS = 3734464
- SZ_ENTITY_INCLUDE_ALL_FEATURES = 1024
- SZ_ENTITY_INCLUDE_ALL_RELATIONS = 960
- SZ_ENTITY_INCLUDE_DISCLOSED_RELATIONS = 512
- SZ_ENTITY_INCLUDE_ENTITY_NAME = 4096
- SZ_ENTITY_INCLUDE_FEATURE_STATS = 16777216
- SZ_ENTITY_INCLUDE_INTERNAL_FEATURES = 8388608
- SZ_ENTITY_INCLUDE_NAME_ONLY_RELATIONS = 256
- SZ_ENTITY_INCLUDE_POSSIBLY_RELATED_RELATIONS = 128
- SZ_ENTITY_INCLUDE_POSSIBLY_SAME_RELATIONS = 64
- SZ_ENTITY_INCLUDE_RECORD_DATA = 16384
- SZ_ENTITY_INCLUDE_RECORD_DATES = 549755813888
- SZ_ENTITY_INCLUDE_RECORD_FEATURES = 262144
- SZ_ENTITY_INCLUDE_RECORD_FEATURE_DETAILS = 34359738368
- SZ_ENTITY_INCLUDE_RECORD_FEATURE_STATS = 68719476736
- SZ_ENTITY_INCLUDE_RECORD_JSON_DATA = 65536
- SZ_ENTITY_INCLUDE_RECORD_MATCHING_INFO = 32768
- SZ_ENTITY_INCLUDE_RECORD_SUMMARY = 8192
- SZ_ENTITY_INCLUDE_RECORD_TYPES = 268435456
- SZ_ENTITY_INCLUDE_RECORD_UNMAPPED_DATA = 2147483648
- SZ_ENTITY_INCLUDE_RELATED_ENTITY_NAME = 524288
- SZ_ENTITY_INCLUDE_RELATED_MATCHING_INFO = 1048576
- SZ_ENTITY_INCLUDE_RELATED_RECORD_DATA = 4194304
- SZ_ENTITY_INCLUDE_RELATED_RECORD_SUMMARY = 2097152
- SZ_ENTITY_INCLUDE_RELATED_RECORD_TYPES = 536870912
- SZ_ENTITY_INCLUDE_REPRESENTATIVE_FEATURES = 2048
- SZ_EXPORT_DEFAULT_FLAGS = 3734497
- SZ_EXPORT_INCLUDE_ALL_ENTITIES = 33
- SZ_EXPORT_INCLUDE_ALL_HAVING_RELATIONSHIPS = 30
- SZ_EXPORT_INCLUDE_DISCLOSED = 16
- SZ_EXPORT_INCLUDE_MULTI_RECORD_ENTITIES = 1
- SZ_EXPORT_INCLUDE_NAME_ONLY = 8
- SZ_EXPORT_INCLUDE_POSSIBLY_RELATED = 4
- SZ_EXPORT_INCLUDE_POSSIBLY_SAME = 2
- SZ_EXPORT_INCLUDE_SINGLE_RECORD_ENTITIES = 32
- SZ_FIND_INTERESTING_ENTITIES_DEFAULT_FLAGS = 0
- SZ_FIND_NETWORK_DEFAULT_FLAGS = 8589946880
- SZ_FIND_NETWORK_INCLUDE_MATCHING_INFO = 8589934592
- SZ_FIND_PATH_DEFAULT_FLAGS = 1073754112
- SZ_FIND_PATH_INCLUDE_MATCHING_INFO = 1073741824
- SZ_FIND_PATH_STRICT_AVOID = 33554432
- SZ_HOW_ENTITY_DEFAULT_FLAGS = 67108864
- SZ_INCLUDE_FEATURE_SCORES = 67108864
- SZ_INCLUDE_MATCH_KEY_DETAILS = 17179869184
- SZ_NO_FLAGS = 0
- SZ_RECORD_DEFAULT_FLAGS = 65536
- SZ_RECORD_PREVIEW_DEFAULT_FLAGS = 34359738368
- SZ_REEVALUATE_ENTITY_DEFAULT_FLAGS = 0
- SZ_REEVALUATE_RECORD_DEFAULT_FLAGS = 0
- SZ_SEARCH_BY_ATTRIBUTES_ALL = 201340943
- SZ_SEARCH_BY_ATTRIBUTES_DEFAULT_FLAGS = 201340943
- SZ_SEARCH_BY_ATTRIBUTES_MINIMAL_ALL = 134217743
- SZ_SEARCH_BY_ATTRIBUTES_MINIMAL_STRONG = 134217731
- SZ_SEARCH_BY_ATTRIBUTES_STRONG = 201340931
- SZ_SEARCH_INCLUDE_ALL_CANDIDATES = 4294967296
- SZ_SEARCH_INCLUDE_ALL_ENTITIES = 15
- SZ_SEARCH_INCLUDE_NAME_ONLY = 8
- SZ_SEARCH_INCLUDE_POSSIBLY_RELATED = 4
- SZ_SEARCH_INCLUDE_POSSIBLY_SAME = 2
- SZ_SEARCH_INCLUDE_REQUEST = 137438953472
- SZ_SEARCH_INCLUDE_REQUEST_DETAILS = 274877906944
- SZ_SEARCH_INCLUDE_RESOLVED = 1
- SZ_SEARCH_INCLUDE_STATS = 134217728
- SZ_VIRTUAL_ENTITY_DEFAULT_FLAGS = 63488
- SZ_WHY_ENTITIES_DEFAULT_FLAGS = 67108864
- SZ_WHY_RECORDS_DEFAULT_FLAGS = 67108864
- SZ_WHY_RECORD_IN_ENTITY_DEFAULT_FLAGS = 67108864
- SZ_WHY_SEARCH_DEFAULT_FLAGS = 275079233536
- SZ_WITH_INFO = 4611686018427387904
szerror
DO NOT EDIT. This code is generated. Generated by: sz-sdk-errors/bin/generate_python.py Generated for: sz-sdk-python/src/senzing/szerror.py Generated date: 2025-04-23T19:42:39.724610+00:00
- exception senzing.szerror.SzBadInputError[source]
Bases:
SzError
The user-supplied input contained an error.
- exception senzing.szerror.SzConfigurationError[source]
Bases:
SzGeneralError
The program can provide a remedy and continue.
- exception senzing.szerror.SzDatabaseConnectionLostError[source]
Bases:
SzRetryableError
Database connection lost
- exception senzing.szerror.SzDatabaseError[source]
Bases:
SzUnrecoverableError
Database exception
- exception senzing.szerror.SzDatabaseTransientError[source]
Bases:
SzRetryableError
Database connection lost
- exception senzing.szerror.SzError[source]
Bases:
Exception
Base exception for Sz related python code.
- exception senzing.szerror.SzGeneralError[source]
Bases:
SzError
Errors that are not bad input, retryable, or unrecoverable.
- exception senzing.szerror.SzLicenseError[source]
Bases:
SzUnrecoverableError
License exception
- exception senzing.szerror.SzNotFoundError[source]
Bases:
SzBadInputError
Not found
- exception senzing.szerror.SzNotInitializedError[source]
Bases:
SzUnrecoverableError
Not initialized
- exception senzing.szerror.SzReplaceConflictError[source]
Bases:
SzGeneralError
The program can provide a remedy and continue.
- exception senzing.szerror.SzRetryTimeoutExceededError[source]
Bases:
SzRetryableError
Retry timeout exceeded time limit
- exception senzing.szerror.SzRetryableError[source]
Bases:
SzError
The program can provide a remedy and continue.
- exception senzing.szerror.SzSdkError[source]
Bases:
SzGeneralError
An error discovered by the SDK, not the underlying C binary.
- exception senzing.szerror.SzUnhandledError[source]
Bases:
SzUnrecoverableError
Could not handle exception
- exception senzing.szerror.SzUnknownDataSourceError[source]
Bases:
SzBadInputError
Unknown DataSource
constants
szconstants.py has convenience constant declarations.