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

SimilaritySolutionVersion- Global

The SimilaritySolutionVersion 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.

This API is used is used for working with solution versions based on SimilaritySolution API objects in the SimilaritySolution store.

The system creates a solution version each time you train a solution definition. Most versions are created during scheduled solution training.

Methods in this API are accessible using the following SimilaritySolution methods:

Parent Topic:Server API reference

SimilaritySolutionVersion - getProperties()

Gets solution object properties and version number.

NameTypeDescription
None  
TypeDescription
ObjectContents of the Dataset and SimilaritySolution version details. Results vary by object property setup.
{
  "domainName": "String",
  "isActive": "String",
  "label": "String",
  "lookupDatasetProperties": {Object},
  "name": "String",
  "predictedFieldName": "String",
  "processingLanguage": "String",
  "scope": "String",
  "stopwords": [Array],
  "testDatasetProperties": {Object},
  "trainingFrequency": "String",
  "updateFrequency": "String",
  "versionNumber": "String"
}
<Object>.domainNameDomain name associated with this dataset. See Domain separation and Predictive Intelligence.Type: String
<Object>.isActiveFlag that indicates whether this version is active.Valid values: - true: Version is active. - false: Version is not active. Data type: String
<Object>.labelIdentifies the prediction task.
{
  "label": "my first prediction"
}
Data type: String.
<Object>.lookupDatasetPropertiesDetails 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>.predictedFieldNameIdentifies a field to be trained for predictability. 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
<Object>.versionNumberVersion number of the SimilaritySolution object.Data type: String.

The following example gets properties of the active object version in the store.

// Get properties
var mlSolution = sn_ml.SimilaritySolutionStore.get('ml_x_snc_global_similarity_solution');

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

Output:

*** Script: {
  "domainName": "global",
  "isActive": "true",
  "label": "similarity",
  "lookupDatasetProperties": {
    "encodedQuery": "",
    "fieldNames": [
      "short_description"
    ],
    "tableName": "incident"
  },
  "name": "ml_x_snc_global_global_similarity",
  "processingLanguage": "en",
  "stopwords": [
    "Default English Stopwords"
  ],
  "testDatasetProperties": {
    "fieldNames": [
      "short_description"
    ],
    "tableName": "incident"
  },
  "versionNumber": "3"
}

SimilaritySolutionVersion - getStatus(Boolean includeDetails)

Gets training completion status.

NameTypeDescription
includeDetailsBoolean

Flag that indicates whether to return status details.Valid values:

  • true: Return additional details.
  • false: Don't return additional details.

Default: False

TypeDescription
ObjectJavaScript object containing training status information for a SimilaritySolution object.
{
  "state": "String",
  "percentComplete": "Number as a String",
  "hasJobEnded": "Boolean value as a String",
  "details": {Object}
}
<Object>.state

Training completion state. If the training job reaches a terminal state, the job does not leave that state. If the state is terminal, the hasJobEnded property is set to true.Possible values:

  • fetching_files_for_training
  • preparing_data
  • retry
  • solution_cancelled (terminal)
  • solution_complete(terminal)
  • solution_error (terminal)
  • solution_incomplete
  • training_request_received
  • training_request_timed_out (terminal)
  • training_solution
  • uploading_solution
  • waiting_for_training

Data type: String

<Object>.hasJobEndedFlag that indicates whether training is complete.Valid values: - true: Training is complete. - false: Training is incomplete. Data type: Boolean value as a String
<Object>.percentCompleteTraining percent complete. If the completion percentage is less than 100, the job might be in a terminal state. For example, if training times out.Data type: Number as a String Range: 0 thru 100
<Object>.detailsObject containing a list of additional training details.Data type: Object

The following example shows a successful result with training complete.

// Get status
var mlSolution = sn_ml.SimilaritySolutionStore.get('ml_x_snc_global_similarity_solution');

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

Output:

{
 "state":"solution_complete",
 "percentComplete":"100",
 "hasJobEnded":"true",
 "details":{"stepLabel":"Solution Complete"} // This information is only returned if getStatus(true);
}

The following example shows an unsuccessful result with training complete.

// Get status
var solutionName = 'ml_x_snc_global_global_similarity_solution';
var mlSolution = sn_ml.SimilaritySolutionStore.get(solutionName);
var trainingStatus = JSON.parse(mlSolution.getLatestVersion().getStatus());

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

Output:

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

SimilaritySolutionVersion - getVersionNumber()

Gets the version number of a solution object.

NameTypeDescription
None  
TypeDescription
StringVersion number.

The following example shows how to get a version number.

// Get version number
var mlSolution = sn_ml.SimilaritySolutionStore.get('ml_x_snc_global_similarity_solution');

gs.print("Version number: "+JSON.stringify(JSON.parse(mlSolution.getActiveVersion().getVersionNumber()), null, 2));

Output:

Version number: 1

SimilaritySolutionVersion - predict(Object input, Object options)

Gets the input data for a prediction.

NameTypeDescription
inputObjectGlideRecord or array of JSON objects containing field names and values as key-value pairs.
optionsObjectOptional values for filtering prediction results.
{
  "apply_threshold": Boolean,
  "top_n": Number
}
options.apply\_thresholdBooleanFlag that indicates whether to check the threshold value for the solution and apply it to the result set.Valid values: - true: Return results in which confidence is greater than threshold. - false: Return all results. Default: True
options.top\_nNumberIf provided, returns the top results, up to the specified number of predictions.
TypeDescription
ObjectJSON object containing the prediction results sorted by sys\_id or record\_number.
{
    <identifier>: [Array]
}
<Object>.<identifier>List of objects with details for each prediction result.Data type: Array of Objects
<identifier>: [
  {
    "confidence": Number,
    "predictedSysId": "String",
    "predictedValue": "String", 
    "threshold": Number
  }
]
<Object>.<identifier>.<object>.confidenceValue of the confidence associated with the prediction. For example, 53.84. Data type: Number
<Object>.<identifier>.<object>.predictedSysIdThe sys\_id of the predicted value. Results can be from any table on which information is being predicted. Data type: String
<Object>.<identifier>.<object>.predictedValueValue representing the prediction result. Data type: String
<Object>.<identifier>.<object>.thresholdValue of the configured threshold associated with the prediction. Data type: Number

The following example shows how to display prediction results for a predict() method that takes a GlideRecord by sys_id for input and includes optional parameters to restrict to top three results and exclude the threshold value.

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

// single GlideRecord input
var input = new GlideRecord("incident");
input.get("<sys_id>");

// configure optional parameters
var options = {};
options.top_n = 3;
options.apply_threshold = false;

var results = mlSolution.getVersion(1).predict(input, options);
// pretty print JSON results
gs.print(JSON.stringify(JSON.parse(results), null, 2));
{
        "<sys_id/now_GR>": [
    {
      "confidence": 62.10782320780268,
      "threshold": 20.36,
      "predictedValue": "Clone Issues",
      "predictedSysId": ""
    },
    {
      "confidence": 6.945237375770391,
      "threshold": 16.63,
      "predictedValue": "Instance Administration",
      "predictedSysId": ""
    },
    {
      "confidence": 5.321061076300759,
      "threshold": 23.7,
      "predictedValue": "Administration",
      "predictedSysId": ""
    }
  ]
}

The following example shows how to display prediction results for a predict() method that takes an array of field names as key-value pairs for input and includes optional parameters to restrict to top three results and exclude the threshold value.

var mlSolution = sn_ml.SimilaritySolutionStore.get("ml_x_snc_global_similarity_solution");
// key-value pairs input
var input = [{"short_description":"my email is not working"}, {short_description:"need help with password"}];
// configure optional parameters
var options = {};
options.top_n = 3;
options.apply_threshold = false;
var results = mlSolution.predict(input, options);
// pretty print JSON results
gs.print(JSON.stringify(JSON.parse(results), null, 2));
{
  "1": [
    {
      "confidence": 37.5023032262591,
      "threshold": 10.72,
      "predictedValue": "Authentication",
      "predictedSysId": ""
    },
    {
      "confidence": 24.439964862166583,
      "threshold": 23.7,
      "predictedValue": "Administration",
      "predictedSysId": ""
    },
    {
      "confidence": 11.736320486031047,
      "threshold": 100,
      "predictedValue": "Security",
      "predictedSysId": ""
    }
  ],
  "2": [
    {
      "confidence": 99,
      "threshold": 17.77,
      "predictedValue": "Email",
      "predictedSysId": ""
    },
    {
      "confidence": 3.182137005157543,
      "threshold": 10.72,
      "predictedValue": "Authentication",
      "predictedSysId": ""
    },
    {
      "confidence": 2.8773826570713514,
      "threshold": -1,
      "predictedValue": "Email (I/f)",
      "predictedSysId": ""
    }
  ]
}