GeniusResultAnswer – Scoped
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.
- 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.
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.
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.
| 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. |
| Typ | Beschreibung |
|---|---|
| Boolean | Kennzeichnung, die angibt, ob der Aufruf der Methode erfolgreich war. Gültige Werte:
|
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.
| 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: |
| Typ | Beschreibung |
|---|---|
| Boolean | Kennzeichnung, die angibt, ob der Aufruf der Methode erfolgreich war. Gültige Werte:
|
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.
| Name | Typ | Beschreibung |
|---|---|---|
| query | Zeichenfolge | Codierte Suchabfrage zum Senden an KI-Suche aus dem AI Search request processor ]-Skript Ihrer Genius-Ergebniskonfiguration. |
| Typ | Beschreibung |
|---|---|
| Boolean | Kennzeichnung, die angibt, ob der Aufruf der Methode erfolgreich war. Gültige Werte:
|
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.
| 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 |
| Typ | Beschreibung |
|---|---|
| Boolean | Kennzeichnung, die angibt, ob der Aufruf der Methode erfolgreich war. Gültige Werte:
|
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.
| 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. |
| Typ | Beschreibung |
|---|---|
| Boolean | Kennzeichnung, die angibt, ob der Aufruf der Methode erfolgreich war. Gültige Werte:
|
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.
| 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. |
| Typ | Beschreibung |
|---|---|
| Boolean | Kennzeichnung, die angibt, ob der Aufruf der Methode erfolgreich war. Gültige Werte:
|
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.
| 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:
Standardwert: true |
| 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;
}