GeniusResultAnswer – Scoped

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 7 Minuten Lesedauer
  • Die GeniusResultAnswer- API stellt Methoden zum Erstellen eines Antwortobjekts in den Prozessorskripts einer Genius-Ergebniskonfiguration bereit. Mit dieser API erstellte Antworten definieren Suchanfragen oder Schlüssel-Wert-Paarzuordnungen, die Genius-Ergebnisantwortkarten ausfüllen können.

    Sie können das Antwortobjekt mit Abfragedetails füllen, die mithilfe der GeniusResultContext- API aus dem Kontext der Genius-Ergebniskonfiguration abgerufen wurden.

    Die GeniusResultAnswer- API-Methoden, die Sie zum Erstellen Ihres Antwortobjekts aufrufen müssen, hängen davon ab, welches KI-Suche Genius-Ergebniskonfigurationsformularfeld Sie für Ihr Skript verwenden:
    • Wenn Sie im Feld AI Search request processor einer Genius-Ergebniskonfiguration Skripts erstellen, müssen Sie die Methode setTable() und eine der Methoden setSearchPhrase(), addSearchPhrasses()oder setEncodedQuery() aufrufen. Alle anderen Methoden sind optional, mit Ausnahme von addDataMap(), die für diesen Anwendungsfall nicht relevant ist.
    • Wenn Sie im Feld AI Search response processor einer Genius-Ergebniskonfiguration Skripts erstellen, müssen Sie die addDataMap()- Methode aufrufen. Für diesen Anwendungsfall sind keine weiteren Methoden relevant.
    Verwenden Sie diese API in serverseitigen Genius-Ergebnisskripts mit dem Namespace-Identifier sn_ais. Weitere Informationen zur Skriptlogik für Genius-Ergebnisse finden Sie unter Neue Genius-Ergebniskonfiguration erstellen.

    GeniusResultAnswer – addDataMap(Object map)

    Definiert eine Genius-Ergebnisantwort mit beliebigen Schlüssel-Wert-Paar-Feldern im AI Search response processor -Skript Ihrer Genius-Ergebniskonfiguration. Sie können jede öffentliche Now Platform API verwenden, um diese Felder zu generieren.

    Hinweis:
    Beim Skripting im Feld AI Search response processor einer Genius-Ergebniskonfiguration müssen Sie diese Methode aufrufen. Wenn Sie diese Methode nicht aufrufen, gibt das Genius-Ergebnis beim Auslösen keine Antworten zurück.

    Sie können einem einzelnen AI Search response processor -Skript mehrere Feldzuordnungen hinzufügen, indem Sie diese Methode mehrmals aufrufen. Jede Feldzuordnung füllt eine separate Genius-Ergebnisantwortkarte aus.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    Zuordnen Objekt

    Definiert einen beliebigen Satz von Schlüssel-Wert-Paar-Feldern, die der Suchabfrageantwort von KI-Suchehinzugefügt werden. Alle Feldwerte müssen Zeichenfolgen sein.

    {
      "fieldName1": String,
      "fieldName2": String
    }
    Tabelle : 2. Ergebnisse
    Typ Beschreibung
    Boolean

    Kennzeichnung, die angibt, ob der Aufruf der Methode erfolgreich war.

    Gültige Werte:
    • true: Aufruf der Methode erfolgreich.
    • false: Aufruf der Methode fehlgeschlagen.

    Dieses AI Search response processor -Skript fügt dem Antwortobjekt benutzerdefinierte Felder für Titel und URL-Schlüssel-Wert-Paare hinzu, die auf einer Genius-Ergebnisantwortkarte angezeigt werden sollen.

    function process(context) {
      var answer = new sn_ais.GeniusResultAnswer();
    
      var customFieldMap = {
        "title": "My custom Genius Result answer",
        "url": "https://example.com/myGeniusResultLink"
      }
    
      answer.addDataMap(customFieldMap);
    
      return answer;
    }

    GeniusResultAnswer – addSearchPhrases(Array searchPhrases)

    Fügt der Suchabfrage, die im AI Search request processor -Skript Ihrer Genius-Ergebniskonfiguration definiert ist, Begriffe hinzu.

    Hinweis:
    Beim Skripting im Feld AI Search request processor einer Genius-Ergebniskonfiguration müssen Sie die Methode setTable() und eine der Methoden setSearchPhrase(), addSearchPhrases()oder setEncodedQuery() aufrufen. Wenn Sie nicht beide erforderlichen Methoden aufrufen, gibt Ihr Genius-Ergebnis beim Auslösen keine Antworten zurück.
    Tabelle : 3. Parameter
    Name Typ Beschreibung
    searchPhrases Array

    Array von beliebigen Zeichenfolgen, die als Suchbegriffe für die im Skript AI Search request processor Ihrer Genius-Ergebniskonfiguration definierte Suchabfrage hinzugefügt werden sollen. KI-Suche behandelt diese Suchbegriffe so, als wären sie durch den ODER-Operator getrennt.

    Beispiel:
    [
      "Term": String,
      "Quoted phrase": String
    ]
    Tabelle : 4. Ergebnisse
    Typ Beschreibung
    Boolean

    Kennzeichnung, die angibt, ob der Aufruf der Methode erfolgreich war.

    Gültige Werte:
    • true: Aufruf der Methode erfolgreich.
    • false: Aufruf der Methode fehlgeschlagen.

    Dieses AI Search request processor Skript erstellt eine Suchabfrage für Datensätze in der Benutzertabelle [sys_user], die die Begriffe Beth oder Anglinenthalten.

    function process(context) {
      var answer = new sn_ais.GeniusResultAnswer();
    
      answer.setTable('sys_user');
      answer.addSearchPhrases(['Beth','Anglin']);
    
      return answer;
    }

    GeniusResultAnswer – setEncodedQuery(String query)

    Gibt eine codierte Suchabfrage im AI Search request processor -Skript Ihrer Genius-Ergebniskonfiguration an. Die Ergebnisse dieser codierten Suchabfrage werden als Genius-Ergebnis-Antwortkarten angezeigt.

    Hinweis:
    Beim Skripting im Feld AI Search request processor einer Genius-Ergebniskonfiguration müssen Sie die Methode setTable() und eine der Methoden setSearchPhrase(), addSearchPhrases()oder setEncodedQuery() aufrufen. Wenn Sie nicht beide erforderlichen Methoden aufrufen, gibt Ihr Genius-Ergebnis beim Auslösen keine Antworten zurück.
    Tabelle : 5. Parameter
    Name Typ Beschreibung
    query Zeichenfolge Codierte Suchabfrage zum Senden an KI-Suche aus dem AI Search request processor ]-Skript Ihrer Genius-Ergebniskonfiguration.
    Tabelle : 6. Ergebnisse
    Typ Beschreibung
    Boolean

    Kennzeichnung, die angibt, ob der Aufruf der Methode erfolgreich war.

    Gültige Werte:
    • true: Aufruf der Methode erfolgreich.
    • false: Aufruf der Methode fehlgeschlagen.

    Dieses AI Search request processor -Skript erstellt eine codierte Suchabfrage für die Benutzertabelle [sys_user]. Die endgültige Abfrage verknüpft mehrere Unterabfragen, die aus Entitäten generiert wurden, die in der ursprünglichen Suchabfrage des Benutzers erkannt wurden.

    function process(context) {
      var answer = new sn_ais.GeniusResultAnswer();
    
      answer.setTable('sys_user');
      answer.setSearchLimit(2);
      answer.spellCheck(false);
      var queries = [];
      var matchingSegments;
      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('personName')) {
              matchingSegments = entities[i]['matchingSegments'];
              for (var j = 0; j < matchingSegments.length; j++)
                answer.addSearchPhrases([matchingSegments[j]['value']]);
            } else if (entities[i]['name'].endsWith('cityLocation')) {
              matchingSegments = entities[i]['matchingSegments'];
              if (matchingSegments && matchingSegments.length > 0)
                queries.push('location.nameLIKE' + matchingSegments[0]['value']);
            } else if (entities[i]['name'].endsWith('departmentName')) {
              matchingSegments = entities[i]['matchingSegments'];
              if (matchingSegments && matchingSegments.length > 0)
                queries.push('department.nameLIKE' + matchingSegments[0]['value']);
            } else if (entities[i]['name'].endsWith('jobTitle')) {
              matchingSegments = entities[i]['matchingSegments'];
              if (matchingSegments && matchingSegments.length > 0)
                queries.push('titleLIKE' + matchingSegments[0]['value']);
            }
          }
        }
      }
    
      if (queries.length > 0)
        answer.setEncodedQuery(queries.join('^'));
    
      return answer;
    }

    GeniusResultAnswer – setSearchLimit(Number searchLimit)

    Begrenzt die maximale Anzahl von Ergebnissen, die für die im Skript AI Search request processor Ihrer Genius-Ergebniskonfiguration definierte Suchabfrage zurückgegeben werden. Standardmäßig gibt die Suchabfrage bis zu drei Ergebnisse zurück.

    Tabelle : 7. Parameter
    Name Typ Beschreibung
    searchLimit Nummer

    Positiver ganzzahliger Wert für die maximale Anzahl von Suchergebnissen, die für die im Skript AI Search request processor Ihrer Genius-Ergebniskonfiguration definierte Suchabfrage zurückgegeben werden sollen. Werte über 3 haben keine Auswirkungen.

    Standard: 3

    Tabelle : 8. Ergebnisse
    Typ Beschreibung
    Boolean

    Kennzeichnung, die angibt, ob der Aufruf der Methode erfolgreich war.

    Gültige Werte:
    • true: Aufruf der Methode erfolgreich.
    • false: Aufruf der Methode fehlgeschlagen.

    Dieses AI Search request processor Skript sucht nach Datensätzen aus der Tabelle „Katalogelement“ [sc_cat_item], die den Begriff Laptop enthalten, und gibt maximal zwei Ergebnisse zurück.

    function process(context) {
      var answer = new sn_ais.GeniusResultAnswer();
    
      answer.setTable('sc_cat_item');
      answer.setSearchPhrase('laptop');
      answer.setSearchLimit(2);
    
      return answer;
    }

    GeniusResultAnswer – setSearchPhrase(String searchPhrase)

    Gibt Begriffe für die Suchabfrage an, die im AI Search request processor -Skript Ihrer Genius-Ergebniskonfiguration definiert ist.

    Hinweis:
    Beim Skripting im Feld AI Search request processor einer Genius-Ergebniskonfiguration müssen Sie die Methode setTable() und eine der Methoden setSearchPhrase(), addSearchPhrases()oder setEncodedQuery() aufrufen. Wenn Sie nicht beide erforderlichen Methoden aufrufen, gibt Ihr Genius-Ergebnis beim Auslösen keine Antworten zurück.
    Tabelle : 9. Parameter
    Name Typ Beschreibung
    searchPhrase Zeichenfolge

    Begriffe, die für die Suchabfrage verwendet werden sollen, die im AI Search request processor -Skript Ihrer Genius-Ergebniskonfiguration definiert ist.

    Wenn Sie die Suchbegriffe aus der Abfrage beibehalten möchten, die die Genius-Ergebniskonfiguration ausgelöst hat, legen Sie diesen Parameter auf den Zeichenfolgenwert fest, der von der GeniusResultContext.getOriginalSearchPhrase()- Methode zurückgegeben wird.

    Tabelle : 10. Ergebnisse
    Typ Beschreibung
    Boolean

    Kennzeichnung, die angibt, ob der Aufruf der Methode erfolgreich war.

    Gültige Werte:
    • true: Aufruf der Methode erfolgreich.
    • false: Aufruf der Methode fehlgeschlagen.

    Dieses AI Search request processor Skript erstellt eine Suchabfrage für Datensätze aus der Benutzertabelle [sys_user], die den Begriff Anglinenthalten.

    function process(context) {
      var answer = new sn_ais.GeniusResultAnswer();
    
      answer.setTable('sys_user');
      answer.setSearchPhrase('Anglin');
    
      return answer;
    }

    GeniusResultAnswer – setTable(String table)

    Beschränkt die im AI Search request processor -Skript einer Genius-Ergebniskonfiguration definierte Suchabfrage auf eine bestimmte Tabelle. Die Abfrage gibt nur Suchergebnisse aus der angegebenen Tabelle als Genius-Ergebnis-Antwortkarten zurück.

    Hinweis:
    Beim Skripting im Feld AI Search request processor einer Genius-Ergebniskonfiguration müssen Sie diese Methode und eine der Methoden setSearchPhrase(), addSearchPhrase()oder setEncodedQuery() aufrufen. Wenn Sie nicht beide erforderlichen Methoden aufrufen, gibt Ihr Genius-Ergebnis beim Auslösen keine Antworten zurück.
    Tabelle : 11. Parameter
    Name Typ Beschreibung
    table Zeichenfolge Now Platform Tabellenname. Nur indizierte Datensätze in dieser Tabelle werden als Ergebnisse für die Suchabfrage zurückgegeben, die im Skript AI Search request processor Ihrer Genius-Ergebniskonfiguration definiert ist.
    Tabelle : 12. Ergebnisse
    Typ Beschreibung
    Boolean

    Kennzeichnung, die angibt, ob der Aufruf der Methode erfolgreich war.

    Gültige Werte:
    • true: Aufruf der Methode erfolgreich.
    • false: Aufruf der Methode fehlgeschlagen.

    Dieses AI Search request processor Skript erstellt eine Suchabfrage für Datensätze aus der Benutzertabelle [sys_user], die den Begriff Anglinenthalten.

    function process(context) {
      var answer = new sn_ais.GeniusResultAnswer();
    
      answer.setTable('sys_user');
      answer.setSearchPhrase('Anglin');
    
      return answer;
    }

    GeniusResultAnswer – Rechtschreibprüfung (Boolean Rechtschreibprüfung)

    Gibt an, ob die automatische Korrektur von Tippfehlern (Rechtschreibprüfung) für die Suchabfrage durchgeführt werden soll, die im AI Search request processor -Skript einer Genius-Ergebniskonfiguration definiert ist.

    Wenn Sie diese Methode nicht im AI Search request processor -Skript Ihrer Genius-Ergebniskonfiguration aufrufen, erbt die definierte Suchabfrage die Kennzeichnung für die Tippfehlerbehandlung von der Suchabfrage, die die Genius-Ergebniskonfiguration auslöst.

    Tabelle : 13. Parameter
    Name Typ Beschreibung
    Rechtschreibprüfung Boolean

    Kennzeichnung, die angibt, ob die automatische Korrektur von Tippfehlern für die Suchabfrage durchgeführt werden soll, die im AI Search request processor -Skript Ihrer Genius-Ergebniskonfiguration definiert ist.

    Gültige Werte:
    • true: Führt eine automatische Korrektur der Tippfehlerbehandlung für die Suchabfrage durch.
    • false: Umgeht die automatische Korrektur der Tippfehlerbehandlung für die Suchabfrage.

    Standardwert: true

    Tabelle : 14. Ergebnisse
    Typ Beschreibung
    Keine

    Dieses AI Search request processor -Skript deaktiviert die automatische Korrektur von Tippfehlern für die Suchabfrage in der Benutzertabelle [sys_user].

    function process(context) {
      var answer = new sn_ais.GeniusResultAnswer();
    
      answer.setTable('sys_user');
      answer.setSearchLimit(2);
      answer.spellCheck(false);
      var queries = [];
      var matchingSegments;
      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('personName')) {
              matchingSegments = entities[i]['matchingSegments'];
              for (var j = 0; j < matchingSegments.length; j++)
                answer.addSearchPhrases([matchingSegments[j]['value']]);
            } else if (entities[i]['name'].endsWith('cityLocation')) {
              matchingSegments = entities[i]['matchingSegments'];
              if (matchingSegments && matchingSegments.length > 0)
                queries.push('location.nameLIKE' + matchingSegments[0]['value']);
            } else if (entities[i]['name'].endsWith('departmentName')) {
              matchingSegments = entities[i]['matchingSegments'];
              if (matchingSegments && matchingSegments.length > 0)
                queries.push('department.nameLIKE' + matchingSegments[0]['value']);
            } else if (entities[i]['name'].endsWith('jobTitle')) {
              matchingSegments = entities[i]['matchingSegments'];
              if (matchingSegments && matchingSegments.length > 0)
                queries.push('titleLIKE' + matchingSegments[0]['value']);
            }
          }
        }
      }
    
      if (queries.length > 0)
        answer.setEncodedQuery(queries.join('^'));
    
      return answer;
    }