GeniusResultContext: スコープ指定

  • リリースバージョン: Australia
  • 更新日 2026年03月12日
  • 所要時間:14分
  • GeniusResultContext API は、Genius 結果構成のコンテキストから検索クエリ情報を取得するためのメソッドを提供します。

    この API で取得した検索クエリの詳細を使用して、 GeniusResultAnswer API で作成された Genius 結果回答オブジェクトに入力できます。

    この API を sn_ais 名前空間識別子とともに Genius 結果のサーバー側スクリプトで使用します。Genius 結果のスクリプティングロジックの詳細については、「 新しい Genius 結果構成の作成」を参照してください。

    GeniusResultContext:getMatchingDocuments()

    Genius 結果構成をトリガーする検索クエリから検索結果ドキュメントを取得します。

    Genius 結果構成の応答プロセッサスクリプトでこのメソッドを使用して、Genius 結果をトリガーする検索クエリによって返された検索結果ドキュメントからフィールド値を取得します。GeniusResultAnswer API メソッドを使用して、検索結果ドキュメントのフィールドを Genius 結果回答に入力できます。
    注:
    このメソッドは、 AI Search request processor スクリプトで呼び出されたときに結果を返しません。これは、 AI 検索 がトリガーする検索クエリの結果を計算する前にスクリプトが実行されるためです。このメソッドを要求プロセッサースクリプトで使用しないでください。
    表 : 1. パラメーター
    名前 タイプ 説明
    なし
    表 : 2. 返される内容
    タイプ 説明
    [アレイ]

    オブジェクトのアレイ。各オブジェクトは、検索クエリに一致した検索結果ドキュメントを表します。

    データタイプ:アレイ

    [
      {
        ".score": Number,
        ".table": "String",
        ".text": "String",
        ".title": "String",
        ".url": "String",
        "class_name": "String",
        "sys_id": "String",
        "<field_name>": <field_value>
      }
    ]
    注:
    検索クエリによっては、リストされている名前と値のペアに加えて、検索結果ドキュメントの AI 検索 インデックスフィールドの一部がオブジェクトに表示される場合があります。
    [アレイ]..スコア

    検索クエリのコンテキストで検索結果ドキュメントに対して計算された関連性スコア。

    データタイプ:数値

    注:
    この名前と値のペアの名前は、 AI 検索 インデックスの スコア 共通フィールドと区別するためにピリオドで始まります。
    [アレイ]..テーブル

    検索結果ドキュメントのインデックス作成元の ServiceNow AI Platform テーブルの名前。

    データタイプ:文字列

    注:
    この名前と値のペアの名前は、 AI 検索 インデックスの テーブル 共通フィールドと区別するためにピリオドで始まります。
    [アレイ]..テキスト

    検索結果ドキュメントのインデックス付きテキスト。

    データタイプ:文字列

    注:
    この名前と値のペアの名前は、 AI 検索 インデックスの テキスト 共通フィールドと区別するためにピリオドで始まります。
    [アレイ]..タイトル

    検索結果ドキュメントのインデックス付きタイトル。

    データタイプ:文字列

    注:
    この名前と値のペアの名前は、 AI 検索 インデックスの タイトル 共通フィールドと区別するためにピリオドで始まります。
    [アレイ]..URL

    検索結果ドキュメントの URL。

    データタイプ:文字列

    注:
    この名前と値のペアの名前は、 AI 検索 インデックスの URL 共通フィールドと区別するためにピリオドで始まります。
    [アレイ].class_name

    検索結果ドキュメントが属する子クラス。テーブルの子クラスの詳細については、「 Table extension and classes」を参照してください。

    データタイプ:文字列

    [アレイ].sys_id

    検索結果ドキュメントのSys_id。

    データタイプ:文字列

    [アレイ].<field_name>

    AI 検索 検索結果ドキュメントのインデックスフィールド。

    データタイプ: AI 検索 インデックスフィールドのデータタイプ。

    この AI Search response processor スクリプトは、検索クエリに一致する最大 3 つの検索結果ドキュメントを取得し、それらのいずれかがナレッジ [kb_knowledge] テーブルからのものであるかどうかを確認します。ナレッジテーブルから検索結果ドキュメントが見つかった場合、この関数はそのドキュメントのフィールドを GeniusResultAnswer オブジェクトに追加して、UI でユーザーに表示できるようにします。

    function process(context) {
      var answer = new sn_ais.GeniusResultAnswer();
      var matchingDocuments = context.getMatchingDocuments();
      if (matchingDocuments.length > 1) {
        for (var i = 0; i < 3; i++) {
          var currentDocument = matchingDocuments[i];
          if (currentDocument['.table'] == 'kb_knowledge') {
            var gr = new GlideRecord("kb_knowledge");
            if (gr.get(currentDocument['sys_id'])) {
              answer.addDataMap({
                "number": currentDocument['number'],
                "url": currentDocument['.url'],
                "title": currentDocument['.title']
              });
            }
          }
          break;
        }
      }
      return answer;
    }

    GeniusResultContext – getOriginalSearchPhrase()

    Genius 結果構成をトリガーする検索クエリから元の検索用語を取得します。

    取得した検索用語を使用して、 GeniusResultAnswer API メソッドを使用して Genius 結果回答を入力できます。

    表 : 3. パラメーター
    名前 タイプ 説明
    なし
    表 : 4. 返される内容
    タイプ 説明
    文字列

    検索クエリの元の用語。

    データタイプ:文字列

    この AI Search request processor スクリプトは、検索クエリの元の用語を取得し、それらを新しいスニペット検索のクエリ用語として使用します。

    function process(context) {
      var answer = new sn_ais.GeniusResultAnswer();
    
      var searchPhrase = context.getOriginalSearchPhrase();
      answer.setSearchPhrase(searchPhrase);
      answer.snippetSearch(true);
    
      return answer;
    }

    GeniusResultContext – getPredictionResult()

    Genius 結果構成 NLU トリガーする検索クエリのモデル予測結果を取得します。

    このメソッドを Genius 結果構成の要求または応答プロセッサスクリプトで使用して、トリガー検索クエリに対して検出されたインテントを取得します。GeniusResultAnswer API メソッドを使用して、検出されたインテントの詳細を Genius 結果回答に入力できます。

    表 : 5. パラメーター
    名前 タイプ 説明
    なし
    表 : 6. 返される内容
    タイプ 説明
    [アレイ]

    各オブジェクトが検索クエリの NLU モデルインテント予測結果を表すオブジェクトのアレイ。

    データタイプ:アレイ

    [
      {
        "intentName": "String",
        "result": {Object},
        "solutionName": "String"
      }
    ]
    [アレイ].intentName

    検索クエリで検出された NLU モデルインテントの名前。

    データタイプ:文字列

    [Array].result

    検索クエリの NLU モデルインテント予測結果を表すオブジェクト。

    データタイプ: オブジェクト

    "result": {
      "application": {Object},
      "result": {Object},
      "solutionLabel": "String",
      "solutionName": "String",
      "solutionType": "String",
      "type": "String",
      "version": Number
    }
    [アレイ].result.application

    予測結果を生成した検索アプリケーションのメタデータを含むオブジェクト。

    データタイプ: オブジェクト

    "application": {
      "language": "String",
      "type": "String"
    }
    [アレイ].result.application.language

    予測結果を生成した ServiceNow AI Platform アプリケーションの言語コンテキスト。

    データタイプ:文字列

    [アレイ].result.application.type

    予測結果を生成した ServiceNow AI Platform アプリケーションのタイプ。

    データタイプ:文字列

    [アレイ].result.result

    NLUモデルインテント予測結果の詳細を含むオブジェクト。

    データタイプ: オブジェクト

    "result": {
      "entities": [Array],
      "intentName": "String",
      "intents": [Array],
      "nluModelName": "String",
      "score": Number
    }
    [アレイ].result.result.entities

    各オブジェクトが検索クエリで検出された NLU モデルインテントエンティティを表すオブジェクトのアレイ。

    データタイプ:アレイ

    "entities": [
      {
        "matchingSegments": [Array],
        "name": "String",
        "parts": [Array],
        "score": Number,
        "startingPosition": Number,
        "value": "String"
      }
    ]
    [アレイ].result.result.entities.matchingSegments

    各オブジェクトが検出された NLU エンティティの一致するセグメントを表すオブジェクトのアレイ。

    データタイプ:アレイ

    "matchingSegments": [
      {
        "directMatch": Boolean
        "meta": {Object},
        "value": "String"
      }
    ]
    [アレイ].result.result.entities.matchingSegments.directMatch

    NLUエンティティ一致セグメントがエンティティ値の完全一致を表すかどうかを示すフラグ。

    [アレイ].result.result.entities.matchingSegments.meta

    NLUエンティティ一致セグメントのメタデータを表すキーと値のペアフィールドを含むオブジェクト。

    データタイプ: オブジェクト

    "meta": {
      "augmentedBy": "String",
      "colMeta:first_name": "String",
      "colMeta:last_name": "String",
      "compositionStrategy": "String",
      "fieldName": "String",
      "searchPreProcessors": "String",
      "SUB_PHRASE.penalty": "String",
      "tableName": "String"
    }
    [アレイ].result.result.entities.matchingSegments.value

    NLUエンティティ一致セグメントの文字列値。

    データタイプ:文字列

    [Array].result.result.entities.name

    検出された NLU エンティティの名前 ( エンティティ:[NLU_model].[インテント]。[entity_type] 形式。

    データタイプ:文字列

    [Array].result.result.entities.parts

    各オブジェクトが予測結果で見つかった NLU エンティティ部分を表すオブジェクトのアレイ。

    データタイプ:アレイ

    "parts": [
      {
        "meta": {Object},
        "value": "String"
      }
    ]
    [アレイ].result.result.entities.parts.meta

    NLUエンティティパーツのメタデータを表すキーと値のペアのフィールドを含むオブジェクト。

    データタイプ: オブジェクト

    "meta": {
      "augmentedBy": "String",
      "colMeta:name": "String",
      "compositionStrategy": "String",
      "fieldName": "String",
      "searchPreProcessors": "String",
      "SUB_PHRASE.penalty": "String",
      "tableName": "String"
    }
    [アレイ].result.result.entities.parts.value

    NLUエンティティパートの文字列値。

    データタイプ:文字列

    [アレイ].result.result.entities.score

    検出された NLU エンティティの信頼性を示す 0 〜 1 の数値スコア。

    データタイプ:数値

    [アレイ].result.result.entities.startingPosition

    検出された NLU エンティティが開始される検索クエリ内の文字位置の数値インデックス。

    データタイプ:数値

    [アレイ].result.result.entities.value

    検索クエリで検出された NLU の文字列値。

    データタイプ:文字列

    [アレイ].result.result.intentName

    検索クエリで検出された NLU モデルインテントの名前。

    データタイプ:文字列

    [アレイ].result.result.intents

    各オブジェクトが、検索クエリで検出されたネストされた NLU モデルインテントを表すオブジェクトのアレイ。

    ネストされたインテントオブジェクトには、親 NLU モデルインテントオブジェクトと同じパラメーター名とデータタイプが含まれます。

    データタイプ:アレイ

    "intents": [
      {
        "entities": [Array],
        "intentName": "String",
        "intents": [Array],
        "nluModelName": "String",
        "score": Number
      }
    ]
    [アレイ].result.result.nluModelName

    予測結果を生成した NLU モデルの名前。

    データタイプ:文字列

    [アレイ].result.result.score

    NLUモデル予測結果の信頼性を示す 0 〜 1 の数値スコア。

    データタイプ:数値

    [アレイ].result.solutionLabel

    予測結果を生成した NLU モデルのラベル。

    データタイプ:文字列

    [アレイ].result.solutionName

    予測結果を生成した NLU モデルの名前。

    データタイプ:文字列

    [アレイ].result.solutionType

    予測結果を生成した NLU モデルのタイプ。

    データタイプ:文字列

    [アレイ].result.type

    予測結果のタイプ。

    データタイプ:文字列

    [アレイ].result.version

    予測結果を生成した NLU モデルのバージョン。

    データタイプ:数値

    [アレイ].solutionName

    予測結果を生成した NLU モデルの名前。

    データタイプ:文字列

    この AI Search request processor スクリプトは、検索クエリに NLU モデル予測結果が含まれているかどうかを確認します。予測結果が見つかると、検出されたすべての catalogItem エンティティから一致するセグメントが検索用語として追加されます。

    function process(context) {
      var answer = new sn_ais.GeniusResultAnswer();
    
      answer.setTable('sc_cat_item');
      answer.setSearchLimit(2);
      var predictionResult = context.getPredictionResult();
      if (predictionResult && predictionResult.length == 1) {
        var detail = predictionResult[0];
        if (detail['result'] && detail['result']['entities']) {
          var entities = detail['result']['entities'];
          for (var i = 0; i < entities.length; i++) {
            if (entities[i]['name'].endsWith('catalogItem')) {
              var matchingSegments = entities[i]['matchingSegments'];
              for (var j = 0; j < matchingSegments.length; j++)
                answer.addSearchPhrases([matchingSegments[j]['value']]);
            }
          }
        }
      }
    
      return answer;
    }