Skip to content
Release: Australia · Updated: 2026-03-12 · Official documentation · View source

SimilaritySolution- Global

The SimilaritySolution API is a scriptable object used in Predictive Intelligence stores.

This API requires the Predictive Intelligence plugin (com.glide.platform_ml) and is provided within the sn_ml namespace.

The solution setup-to-training flow is as follows:

  1. Use the constructor to create a similarity solution object.
  2. Add the solution object to the similarity solution store using the SimilaritySolutionStore - add() method.
  3. Train the solution using the submitTrainingJob() method. This creates a version of the object that you can manage using the SimilaritySolutionVersion API.
  4. Get predictions using the SimilaritySolutionVersion – predict() method.

Note: This API runs with full privileges before the Vancouver Patch 7 Hotfix 2b and Washington DC Patch 7 releases. With later releases, grant access using ACLs. For more information see Query ACLs.

For usage guidelines, refer to Using ML APIs.

Parent Topic:Server API reference

SimilaritySolution - SimilaritySolution(Object config)

Creates a similarity solution.

NameTypeDescription
configObjectJavaScript object containing configuration properties of thesolution.
{  
  "domainName": "String",
  "label": "String",
  "lookupDataset": {Object},
  "minRowCount": "String",
  "processingLanguage": "String",
  "stopwords": [Array],
  "testDataset": {Object},
  "trainingFrequency": "String",
  "updateFrequency": "String"
}
config.domainNameStringOptional. Domain name associated with this dataset. Default: Current domain, for example, `"global"`.
config.labelStringIdentifies the prediction task.
config.lookupDatasetObjectName of the DatasetDefinition to use as the lookup set.
config.minRowCountStringOptional. Minimum number of records required in the dataset for training.Default: 10000
config.processingLanguageStringOptional. Processing language in two-letter ISO 639-1 language code format. Default: "en"
config.stopwordsArrayOptional. Preset list of strings that the system automatically generates based on the language property setting. For details, see Create a custom stopwords list. Default: English Stopwords
config.testDatasetObjectName of the DatasetDefinition to scan for similarities with lookupDataset results.
config.trainingFrequencyStringOptional. The frequency to retrain the model. Possible values: - every\_30\_days - every\_60\_days - every\_90\_days - every\_120\_days - every\_180\_days - run\_once Default: run\_once
config.updateFrequency The frequency at which the model for the solution definition must be rebuilt. Possible values: - do\_not\_update - every\_1\_day - every\_1\_hour - every\_6\_hours - every\_12\_hours - every\_1\_minute - every\_15\_minutes - every\_30\_minutes Default: do\_not\_update

The following example shows how to create an object and add it to the SimilaritySolution store.

var incidentData = new sn_ml.DatasetDefinition({
        'tableName' : 'incident',
        'fieldNames' : ['category', 'short_description']        
    });
    var kbData = new sn_ml.DatasetDefinition({
        'tableName' : 'kb_knowledge',
        'fieldNames' : ['short_description'],
        'encodedQuery' : 'active=true'
    });

    var mySolution = new sn_ml.SimilaritySolution({
        'label': "similarity solution",
        'lookupDataset' : kbData,
        'testDataset' : incidentData,              
    });

    // add solution
    var solutionName = sn_ml.SimilaritySolutionStore.add(mySolution);

SimilaritySolution - cancelTrainingJob()

Cancels a job for a solution object that has been submitted for training.

NameTypeDescription
None  
TypeDescription
None 

The following example shows how to cancel an existing training job.

var mySolution = sn_ml.SimilaritySolutionStore.get('ml_sn_global_global_similarity');

mySolution.cancelTrainingJob();

SimilaritySolution - getActiveVersion()

Gets the active SimilaritySolutionVersion object.

NameTypeDescription
None  
TypeDescription
ObjectActive SimilaritySolutionVersion object.

The following example shows how to get an active SimilaritySolution version from the store and return its training status.

var mlSolution = sn_ml.SimilaritySolutionStore.get('ml_x_snc_global_global_similarity');

gs.print(JSON.stringify(JSON.parse(mlSolution.getActiveVersion().getStatus()), null, 2));

Output:

{
  "state": "solution_complete",
  "percentComplete": "100",
  "hasJobEnded": "true"
}

SimilaritySolution - getAllVersions()

Gets all versions of a SimilaritySolution object.

NameTypeDescription
None  
TypeDescription
ArrayExisting versions of a solution object. See also SimilaritySolutionVersion API.

The following example shows how to get all SimilaritySolution version objects and call the getVersionNumber() and getStatus() solution version methods on them.

var mlSolution = sn_ml.SimilaritySolutionStore.get('ml_x_snc_global_global_Similarity');

var mlSolutionVersions = mlSolution.getAllVersions();

for (i = 0; i < mlSolutionVersions.length; i++) {
gs.print("Version " + mlSolutionVersions[i].getVersionNumber() + " Status: " + mlSolutionVersions[i].getStatus() +"\n");

Output:

Version 3 Status: {"state":"solution_complete","percentComplete":"100","hasJobEnded":"true"}

Version 2 Status: {"state":"solution_complete","percentComplete":"100","hasJobEnded":"true"}

Version 1 Status: {"state":"solution_cancelled","percentComplete":"0","hasJobEnded":"true"}

SimilaritySolution - getLatestVersion()

Gets the latest version of a solution.

NameTypeDescription
None  
TypeDescription
ObjectSimilaritySolutionVersion object corresponding to the latest version of a SimilaritySolution.

The following example shows how to get the latest version of a solution and return its training status.

var mlSolution = sn_ml.SimilaritySolutionStore.get('ml_x_snc_global_global_Similarity');

gs.print(JSON.stringify(JSON.parse(mlSolution.getLatestVersion().getStatus()), null, 2));

Output:

{
  "state": "solution_complete",
  "percentComplete": "100",
  "hasJobEnded": "true"
}

SimilaritySolution - getName()

Gets the name of the object to use for interaction with the store.

NameTypeDescription
None  
TypeDescription
StringName of the solution object.

The following example shows how to update SimilaritySolution dataset information and print the name of the object.

// Update solution
var myIncidentData = new sn_ml.DatasetDefinition({
   'tableName' : 'incident',
   'fieldNames' : ['category', 'short_description', 'priority'],
   'encodedQuery' : 'activeANYTHING'
});

var eligibleFields = JSON.parse(myIncidentData.getEligibleFields('Similarity'));

var mySimilarity = new sn_ml.SimilaritySolution({
   'label': "my Similarity solution",
   'dataset' : myIncidentData,
   'inputFieldNames': eligibleFields['eligibleInputFieldNames'],
   'predictedFieldName': 'category'
});

// update solution
sn_ml.SimilaritySolutionStore.update('ml_x_snc_global_global_my_solution_definition_4', mySimilarity);

// print solution name
gs.print('Solution Name: '+mySimilarity.getName());

Output:

Solution Name: ml_x_snc_global_global_my_solution_definition_4

SimilaritySolution - getProperties()

Gets solution object properties.

NameTypeDescription
None  
TypeDescription
ObjectContents of the Dataset and SimilaritySolution() object details in the SimilaritySolutionStore.{ "domainName": "String", "label": "String", "lookupDatasetProperties": {Object}, "name": "String", "processingLanguage": "String", "scope": "String", "stopwords": [Array], "testDatasetProperties": {Object}, "trainingFrequency": "String", "updateFrequency": "String" }
<Object>.domainNameDomain name associated with this dataset. See Domain separation and Predictive Intelligence.Type: String
<Object>.labelIdentifies the prediction task.
{
  "label": "my first prediction"
}
Data type: String.
<Object>.lookupDatasetProperties

Details of the DatasetDefinition() object used as the lookup set. { "encodedQuery": "String", "fieldDetails": [Array], "fieldNames": [Array], "tableName": "String" }

Data type: Object.

<Object>.lookupDatasetProperties.tableNameName of the table for the dataset. For example, `"tableName" : "Incident"`. Data type: String.
<Object>.lookupDatasetProperties.fieldNamesList of field names from the specified table as strings. For example, `"fieldNames" : ["short_description", "priority"]`. Data type: Array.
<Object>.lookupDatasetProperties.fieldNames.fieldDetailsList of JavaScript objects that specify field properties.
[
  {
    "name": "String",
    "type": "String"
  }
]
Data type: Array.
<Object>.lookupDatasetProperties.fieldNames.fieldDetails.<object>.nameName of the field defining the type of information to restrict this dataset to. Data type: String.
<Object>.lookupDatasetProperties.fieldDetails.<object>.typeMachine-learning field type. Data type: String.
<Object>.lookupDatasetProperties.fieldDetails.encodedQueryEncoded query string in the standard platform format. See Encoded query strings.Data type: String.
<Object>.nameSystem-assigned name. Data type: String.
<Object>.processingLanguageProcessing language in two-letter ISO 639-1 language code format. Data type: String.
<Object>.scopeObject scope. Currently the only valid value is `global`.Data type: String
<Object>.stopwordsOptional. Preset list of strings that the system automatically generates based on the language property setting. For details, see Create a custom stopwords list. Data type: Array.
<Object>.testDatasetProperties

Details of the DatasetDefinition() object used to retrieve similarities between results searched in this model and results found in the lookupDataset. { "encodedQuery": "String", "fieldDetails": [Array], "fieldNames": [Array], "tableName": "String" }

Data type: Object.

<Object>.testDatasetProperties.tableNameName of the table for the dataset. For example, `"tableName" : "Incident"`. Data type: String.
<Object>.testDatasetProperties.fieldNamesList of field names from the specified table as strings. For example, `"fieldNames" : ["short_description", "priority"]`. Data type: Array.
<Object>.testDatasetProperties.fieldNames.fieldDetailsList of JavaScript objects that specify field properties.
[
  {
    "name": "String",
    "type": "String"
  }
]
Data type: Array.
<Object>.testDatasetProperties.fieldNames.fieldDetails.<object>.nameName of the field defining the type of information to restrict this dataset to. Data type: String.
<Object>.testDatasetProperties.fieldDetails.<object>.typeMachine-learning field type. Data type: String.
<Object>.testDatasetProperties.fieldDetails.encodedQueryEncoded query string in the standard platform format. Data type: String.
<Object>.trainingFrequencyThe frequency to retrain the model. Possible values: - every\_30\_days - every\_60\_days - every\_90\_days - every\_120\_days - every\_180\_days - run\_once Default: run\_once Data type: String.
<Object>.updateFrequencyThe frequency at which the model for the solution definition must be rebuilt. Possible values: - do\_not\_update - every\_1\_day - every\_1\_hour - every\_6\_hours - every\_12\_hours - every\_1\_minute - every\_15\_minutes - every\_30\_minutes Default: do\_not\_update Datatype: String

The following example gets properties of a solution object in the store.

var mySolution = sn_ml.SimilaritySolutionStore.get('ml_sn_global_global_similarity_solution');

gs.print(JSON.stringify(JSON.parse(mySolution.getProperties()), null, 2));

Output:

*** Script: {
  "domainName": "global",
  "label": "similarity",
  "lookupDatasetProperties": {
    "tableName": "incident",
    "fieldNames": [
      "short_description"
    ]
  },
  "name": "ml_x_snc_global_global_similarity",
  "processingLanguage": "en",
  "scope": "global",
  "stopwords": [
    "Default English Stopwords"
  ],
  "testDatasetProperties": {
    "tableName": "incident",
    "fieldNames": [
      "short_description"
    ]
  },
  "trainingFrequency": "every_30_days",
  "updateFrequency": "do_not_update"
}

SimilaritySolution - getVersion(String version)

Gets a solution by provided version number.

NameTypeDescription
versionStringExisting version number of a solution.
TypeDescription
ObjectSpecified version of the SimilaritySolution() object on which you can call SimilaritySolutionVersion API methods.

The following example shows how to get the training status of a solution by version number.

var mlSolution = sn_ml.SimilaritySolutionStore.get('ml_x_snc_global_global_similarity');

gs.print(JSON.stringify(JSON.parse(mlSolution.getVersion('1').getStatus()), null, 2));

Output:

{
  "state": "solution_complete",
  "percentComplete": "100",
  "hasJobEnded": "true"
}

SimilaritySolution - setActiveVersion(String version)

Activates a specified version of a solution in the store.

NameTypeDescription
versionStringName of the SimilaritySolution() object version to activate.Activating this version deactivates any other version.
TypeDescription
None 

The following example shows how to activate a solution version in the store.

sn_ml.SimilaritySolution.setActiveVersion("ml_x_snc_global_similarity_solution");

SimilaritySolution - submitTrainingJob()

Submits a training job.

Note: Before running this method, you must first add a solution to the store using the SimilaritySolutionStore - add() method.

NameTypeDescription
None  
TypeDescription
ObjectSimilaritySolutionVersion object corresponding to the SimilaritySolution being trained.
// Create a dataset 
var incidentData = new sn_ml.DatasetDefinition({
    'tableName' : 'incident',
    'fieldNames' : ['category', 'short_description']
});

var kbData = new sn_ml.DatasetDefinition({
    'tableName' : 'kb_knowledge',
    'fieldNames' : ['short_description'],
    'encodedQuery' : 'active=true'
});

// Create a solution 
var mySolution = new sn_ml.SimilaritySolution({
    'label': "similarity solution",
    'lookupDataset' : kbData,
    'testDataset' : incidentData
});

// Add solution
var solutionName = sn_ml.SimilaritySolutionStore.add(mySolution);


// Train the solution - this is a long running job 
var mySimilarityVersion = mySolution.submitTrainingJob();