---
sourceDocument: Xanadu API リファレンス
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ja-JP/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - ja-JP

ft:publication_title :

    - Xanadu API リファレンス

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# GeniusResultContext -スコープ付き

# GeniusResultContext -スコープ付き {#ariaid-title1}

* リリースバージョン: Xanadu
* 
* 更新日 2024年08月01日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：14分

GeniusResultContext API は、Genius 結果構成のコンテキストから検索クエリ情報を取得するためのメソッドを提供します。

この API で取得された検索クエリーの詳細を使用して、[GeniusResultAnswer](https://servicenow-prod.fluidtopics.net/VEd1EjiX2xEWKthVmM8IEw#GeniusResultAnswerScopedAPI "GeniusResultAnswer API は、Genius 結果構成のプロセッサースクリプトで回答オブジェクトを作成するためのメソッドを提供します。この API で作成された回答は、Genius 結果の回答カードに入力できる検索要求またはキー/値ペアのマップを定義します。") API で作成された Genius 結果の回答オブジェクトを入力できます。

この API を Genius 結果のサーバー側スクリプトで使用し、名前空間識別子を `sn_ais` にします。Genius 結果のスクリプティングロジックの詳細については、「 [新しい Genius 結果構成の作成](https://www.servicenow.com/docs/access?context=create-genius-results-config-ais&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US)」を参照してください。

## GeniusResultContext:getMatchingDocuments() {#ariaid-title2}

Genius 結果構成をトリガーする検索クエリから検索結果ドキュメントを取得します。
Genius 結果をトリガーする検索クエリによって返された検索結果ドキュメントからフィールド値を取得するには、Genius 結果構成の応答プロセッサースクリプトでこのメソッドを使用します。GeniusResultAnswer API メソッドを使用して、検索結果ドキュメントのフィールドを Genius 結果の回答に入力できます。  
注:  
このメソッドは、 AI Search request processor スクリプトで呼び出された場合、トリガーとなる検索クエリの結果を計算する前にスクリプトが実行され AI 検索 ため、結果を返しません。このメソッドを要求プロセッサースクリプトで使用しないでください。
{#GRContext-getMatchingDocuments__table_ehg_4gr_ywb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 1. パラメーター]

{#GRContext-getMatchingDocuments__table_ehg_4gr_ywb} {#GRContext-getMatchingDocuments__table_fhg_4gr_ywb__entry__2}

| タイプ | 説明 |
|-|-|
| \[Array\] | 各オブジェクトが検索クエリに一致した検索結果ドキュメントを表すオブジェクトのアレイ。 データタイプ：アレイ [ { ".score": Number, ".table": "String", ".text": "String", ".title": "String", ".url": "String", "class_name": "String", "sys_id": "String", "<field_name>": <field_value> } ] 注: 検索クエリによっては、リストされた名前と値のペアに加えて、検索結果ドキュメントの AI 検索 インデックスフィールドの一部がオブジェクトに表示される場合があります。 |
| \[アレイ\]..スコア | 検索クエリのコンテキストで検索結果ドキュメントに対して計算された関連性スコア。 データタイプ：数値 注: この名前と値のペアの名前は、 AI 検索 インデックスの スコア 共通フィールドと区別するためのピリオドで始まります。 |
| \[アレイ\]..テーブル | 検索結果ドキュメントのインデックスが作成された Now Platform テーブルの名前。 データタイプ：文字列 注: この名前と値のペアの名前は、 AI 検索 インデックスの テーブル 共通フィールドと区別するためのピリオドで始まります。 |
| \[アレイ\]..テキスト | 検索結果ドキュメントからのインデックス付きテキスト。 データタイプ：文字列 注: この名前と値のペアの名前は、 AI 検索 インデックスの テキスト 共通フィールドと区別するためにピリオドで始まります。 |
| \[アレイ\]..タイトル | 検索結果ドキュメントのインデックス化されたタイトル。 データタイプ：文字列 注: この名前と値のペアの名前は、 AI 検索 インデックス のタイトル共通フィールド と区別するためにピリオドで始まります。 |
| \[アレイ\]..URL | 検索結果ドキュメントの URL。 データタイプ：文字列 注: この名前と値のペアの名前は、 AI 検索 インデックスの url 共通フィールドと区別するためにピリオドで始まります。 |
| \[配列\].class_name | 検索結果ドキュメントが属する子クラス。テーブルの子クラスの詳細については、「 [Table extension and classes](https://www.servicenow.com/docs/access?context=table-extension-and-classes&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US)」を参照してください。 データタイプ：文字列 |
| \[アレイ\].sys_id | 検索結果ドキュメントのSys_id。 データタイプ：文字列 |
| \[Array\].\<field_name\> | AI 検索 検索結果ドキュメントのインデックスフィールド。 データタイプ: AI 検索 インデックスフィールドのデータタイプ。 |
[表 : 2. 返される内容]

{#GRContext-getMatchingDocuments__table_fhg_4gr_ywb}  
この 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() {#ariaid-title3}

Genius 結果構成をトリガーする検索クエリから元の検索用語を取得します。
取得した検索用語を使用して、 GeniusResultAnswer API メソッドを使用して Genius 結果の回答を入力できます。
{#GRContext-getOriginalSearchPhrase__table_d5s_ntm_qnb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 3. パラメーター]

{#GRContext-getOriginalSearchPhrase__table_d5s_ntm_qnb} {#GRContext-getOriginalSearchPhrase__table_e5s_ntm_qnb__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | 検索クエリーの元の用語です。 データタイプ：文字列 |
[表 : 4. 返される内容]

{#GRContext-getOriginalSearchPhrase__table_e5s_ntm_qnb}  
この 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() {#ariaid-title4}

Genius 結果構成 NLU トリガーする検索クエリのモデル予測結果を取得します。
Genius 結果構成の要求または応答プロセッサスクリプトでこのメソッドを使用して、トリガーする検索クエリに対して検出されたインテントを取得します。検出されたインテントの詳細を含む Genius 結果の回答を、GeniusResultAnswer API メソッドを使用して入力できます。
{#GRContext-getPredictionResult__table_z3s_4tm_qnb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 5. パラメーター]

{#GRContext-getPredictionResult__table_z3s_4tm_qnb} {#GRContext-getPredictionResult__table_ajs_4tm_qnb__entry__2}

| タイプ | 説明 |
|-|-|
| \[Array\] | 各オブジェクトが検索クエリーの NLU モデルインテント予測結果を表すオブジェクトのアレイです。 データタイプ：アレイ [ { "intentName": "String", "result": {Object}, "solutionName": "String" } ] |
| \[Array\].intentName | 検索クエリーで検出された NLU モデルインテントの名前 データタイプ：文字列 |
| \[Array\].result | 検索クエリーの NLU モデルインテント予測結果を表すオブジェクトです。 データタイプ：オブジェクト "result": { "application": {Object}, "result": {Object}, "solutionLabel": "String", "solutionName": "String", "solutionType": "String", "type": "String", "version": Number } |
| \[Array\].result.application | 予測結果を生成した検索アプリケーションのメタデータを含むオブジェクトです。 データタイプ：オブジェクト "application": { "language": "String", "type": "String" } |
| \[Array\].result.application.language | 予測結果を生成した Now Platform アプリケーションの言語コンテキストです。 データタイプ：文字列 |
| \[Array\].result.application.type | 予測結果を生成した Now Platform アプリケーションのタイプです。 データタイプ：文字列 |
| \[Array\].result.result | NLU モデルインテント予測結果の詳細を含むオブジェクトです。 データタイプ：オブジェクト "result": { "entities": [Array], "intentName": "String", "intents": [Array], "nluModelName": "String", "score": Number } |
| \[Array\].result.result.entities | 各オブジェクトが検索クエリーで検出された NLU モデルインテントエンティティを表すオブジェクトのアレイです。 データタイプ：アレイ "entities": [ { "matchingSegments": [Array], "name": "String", "parts": [Array], "score": Number, "startingPosition": Number, "value": "String" } ] |
| \[Array\].result.result.entities.matchingSegments | 各オブジェクトが検出された NLU エンティティの一致セグメントを表すオブジェクトのアレイです。 データタイプ：アレイ "matchingSegments": [ { "directMatch": Boolean "meta": {Object}, "value": "String" } ] |
| \[Array\].result.result.entities.matchingSegments.directMatch | NLU エンティティの一致セグメントがエンティティ値の完全一致を表すかどうかを示すフラグです。 |
| \[Array\].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" } |
| \[Array\].result.result.entities.matchingSegments.value | NLU エンティティの一致セグメントの文字列値です。 データタイプ：文字列 |
| \[Array\].result.result.entities.name | 検出された NLU エンティティの名前です。形式は entity:\[NLU_model\].\[intent\].\[entity_type\] です。 データタイプ：文字列 |
| \[Array\].result.result.entities.parts | 各オブジェクトが予測結果にある NLU エンティティのパーツを表すオブジェクトのアレイです。 データタイプ：アレイ "parts": [ { "meta": {Object}, "value": "String" } ] |
| \[Array\].result.result.entities.parts.meta | NLU エンティティのパーツのメタデータを表すキー/値ペアのフィールドを含むオブジェクトです。 データタイプ：オブジェクト "meta": { "augmentedBy": "String", "colMeta:name": "String", "compositionStrategy": "String", "fieldName": "String", "searchPreProcessors": "String", "SUB_PHRASE.penalty": "String", "tableName": "String" } |
| \[Array\].result.result.entities.parts.value | NLU エンティティのパーツの文字列値です。 データタイプ：文字列 |
| \[Array\].result.result.entities.score | 検出された NLU エンティティの信頼性を示す 0 〜 1 の数値スコアです。 データタイプ：数値 |
| \[Array\].result.result.entities.startingPosition | 検索クエリーで検出された NLU エンティティが始まる文字位置の数値インデックスです。 データタイプ：数値 |
| \[Array\].result.result.entities.value | 検索クエリーで検出された NLU の文字列値です。 データタイプ：文字列 |
| \[Array\].result.result.intentName | 検索クエリーで検出された NLU モデルインテントの名前です。 データタイプ：文字列 |
| \[Array\].result.result.intents | 各オブジェクトが、検索クエリーで検出済みのネストされた NLU モデルインテントを表すオブジェクトのアレイです。 ネストされたインテントオブジェクトには、親 NLU モデルインテントオブジェクトと同じパラメーター名とデータタイプが含まれます。 データタイプ：アレイ "intents": [ { "entities": [Array], "intentName": "String", "intents": [Array], "nluModelName": "String", "score": Number } ] |
| \[Array\].result.result.nluModelName | 予測結果を生成した NLU モデルの名前です。 データタイプ：文字列 |
| \[Array\].result.result.score | NLU モデル予測結果の信頼性を示す 0 〜 1 の数値スコアです。 データタイプ：数値 |
| \[Array\].result.solutionLabel | 予測結果を生成した NLU モデルのラベルです。 データタイプ：文字列 |
| \[Array\].result.solutionName | 予測結果を生成した NLU モデルの名前です。 データタイプ：文字列 |
| \[Array\].result.solutionType | 予測結果を生成した NLU モデルのタイプです。 データタイプ：文字列 |
| \[Array\].result.type | 予測結果のタイプです。 データタイプ：文字列 |
| \[Array\].result.version | 予測結果を生成した NLU モデルのバージョンです。 データタイプ：数値 |
| \[Array\].solutionName | 予測結果を生成した NLU モデルの名前です。 データタイプ：文字列 |
[表 : 6. 返される内容]

{#GRContext-getPredictionResult__table_ajs_4tm_qnb}  
この 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;
    }


