

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Aggiungere sinonimi personalizzati a un indice
<a name="index-synonyms"></a>

Per aggiungere sinonimi personalizzati a un indice, è necessario specificarli in un file del thesaurus. Nell'uso dei sinonimi è possibile includere termini aziendali specifici o specialistici. Amazon Kendra I sinonimi generici in inglese, ad esempio`leader, head`, sono incorporati Amazon Kendra e non devono essere inclusi in un file del thesaurus, compresi i sinonimi generici che utilizzano trattini. Amazon Kendra supporta i sinonimi per tutti i tipi di risposta, che includono i tipi di `DOCUMENT` risposta e/o i tipi di risposta. `QUESTION_ANSWER` `ANSWER` Amazon Kendra attualmente non supporta l'aggiunta di sinonimi contrassegnati come stopword. Questo sarà incluso in una versione futura.

Amazon Kendra crea correlazioni tra sinonimi. Ad esempio, utilizzando la coppia di sinonimi`Dynamo, Amazon DynamoDB`, Amazon Kendra correla Dynamo con. Amazon DynamoDB La domanda «Cos'è la dinamo?» quindi restituisce un documento come «Che cos'è Amazon DynamoDB?». Con i sinonimi, Amazon Kendra è possibile rilevare più facilmente la correlazione.

Il file del thesaurus è un file di testo memorizzato in un bucket. Amazon S3 Per informazioni, consulta [Aggiungere un thesaurus a un indice](index-synonyms-adding-thesaurus-file.md).

[Il file del thesaurus utilizza il formato dei sinonimi Solr.](https://lucene.apache.org/solr/guide/6_6/filter-descriptions.html#FilterDescriptions-SynonymGraphFilter) Amazon Kendra ha un limite al numero di thesauri per indice. Consulta l'argomento [Quote](https://docs.aws.amazon.com/kendra/latest/dg/quotas.html). 

I sinonimi possono essere utili nei seguenti scenari:
+ Termini specializzati che non sono sinonimi tradizionali della lingua inglese come`NLP, Natural Language Processing`.
+ Nomi propri con associazioni semantiche complesse. Si tratta di sostantivi che è improbabile che il grande pubblico comprenda, ad esempio, nell'apprendimento automatico,. `cost, loss, model performance` 
+ Diverse forme di nomi di prodotto, ad esempio,. `Elastic Compute Cloud, EC2`
+ Termini specifici del dominio o dell'azienda, come i nomi dei prodotti. Ad esempio, `Route53, DNS`.

Non utilizzare sinonimi nei seguenti scenari:
+ Sinonimi generici in lingua inglese come`leader, head`. Questi sinonimi non sono specifici del dominio e l'utilizzo di sinonimi in questi scenari potrebbe avere effetti indesiderati.
+ Errori tipografici come. `teh => the`
+ Varianti morfologiche come i plurali e i possessivi dei sostantivi, la forma comparativa e superlativa degli aggettivi e il passato, il participio passato e la forma progressiva dei verbi. Un esempio di `good, better, best` aggettivi comparativi e superlativi è.
+ Unigram (parola singola) interrompono parole come. `WHO` Le interruzioni Unigram non sono consentite nel thesaurus e sono escluse dalla ricerca. Ad esempio, viene rifiutato. `WHO => World Health Organization` È possibile utilizzare `W.H.O.` tuttavia come termine sinonimo e interrompere le parole chiave come parte di un sinonimo composto da più parole. Ad esempio, non `of` è consentito ma `United States of America` è accettato.

I sinonimi personalizzati facilitano la comprensione Amazon Kendra della terminologia specifica dell'azienda, ampliando le query per includere i sinonimi specifici dell'azienda. Sebbene i sinonimi possano migliorare la precisione della ricerca, è importante capire in che modo i sinonimi influiscono sulla latenza in modo da poterla ottimizzare.

Una regola generale per i sinonimi è: maggiore è il numero di termini nella query che vengono abbinati e ampliati con sinonimi, maggiore è il potenziale impatto sulla latenza. Altri fattori che influiscono sulla latenza includono la dimensione media dei documenti indicizzati, la dimensione dell'indice, qualsiasi filtro sui risultati di ricerca e il carico complessivo dell'indice. Amazon Kendra Le query che non corrispondono ad alcun sinonimo non sono interessate.

Una linea guida generale su come i sinonimi influiscono sulla latenza:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/kendra/latest/dg/index-synonyms.html)

\$1 *Le prestazioni variano in base all'uso specifico dei sinonimi e delle configurazioni dell'indice. È consigliabile testare le prestazioni di ricerca per ottenere benchmark più accurati per il caso d'uso specifico.*

Se il thesaurus è di grandi dimensioni, ha un rapporto di espansione a lungo termine elevato e l'aumento della latenza non rientra nei limiti accettabili, potete provare una o entrambe le seguenti soluzioni:
+ Taglia il thesaurus per ridurre il rapporto di espansione (numero di sinonimi per termine).
+ Riduci la copertura complessiva dei termini (numero di righe nel thesaurus).

In alternativa, è possibile aumentare la capacità di provisioning (unità di archiviazione virtuali) per compensare l'aumento della latenza.

**Topics**
+ [Creazione di un file del thesaurus](index-synonyms-creating-thesaurus-file.md)
+ [Aggiungere un thesaurus a un indice](index-synonyms-adding-thesaurus-file.md)
+ [Aggiornamento di un thesaurus](index-synonyms-update.md)
+ [Eliminazione di un thesaurus](index-synonyms-delete.md)
+ [Punti salienti nei risultati di ricerca](index-synonyms-enabling-synonyms-in-results.md)

# Creazione di un file del thesaurus
<a name="index-synonyms-creating-thesaurus-file"></a>

Un file Amazon Kendra del thesaurus è un file con codifica UTF-8 contenente un elenco di sinonimi nel formato di elenco dei sinonimi Solr. Il file del thesaurus deve pesare meno di 5 MB. 

Esistono due modi per specificare le mappature dei sinonimi:
+ I *sinonimi bidirezionali* vengono specificati come elenco di termini separati da virgole. Se l'utente esegue una query su uno qualsiasi dei termini, tutti i termini dell'elenco vengono utilizzati per la ricerca nei documenti, incluso il termine originale interrogato.
+ I *sinonimi unidirezionali* sono specificati come termini separati dal simbolo «=>» tra di loro per associare i termini ai rispettivi sinonimi. Se l'utente cerca un termine a sinistra del simbolo «=>», viene mappato a un termine a destra per cercare documenti utilizzando il sinonimo. Non è mappato viceversa, il che lo rende unidirezionale.

I sinonimi stessi fanno distinzione tra maiuscole e minuscole, ma i termini a cui mappano non fanno distinzione tra maiuscole e minuscole. Ad esempio, `ML => Machine Learning` significa che se l'utente richiede «ML» o «ml» o utilizza altre maiuscole, verrà mappato a «Machine Learning». Se dovessi mapparlo viceversa`Machine Learning => ML`, allora «Machine Learning» o «machine learning» o qualche altro caso verrebbero mappati a «ML».

Un sinonimo non cerca una corrispondenza esatta su caratteri speciali. Ad esempio, se cerchi "dead-letter-queue«, Amazon Kendra puoi restituire documenti che corrispondono a «dead letter queue» (senza trattino). Se i documenti contengono trattini, ad esempio "dead-letter-queue«, Amazon Kendra elabora i documenti durante la ricerca per rimuovere i trattini. Per i sinonimi generici in inglese incorporati Amazon Kendra e che non devono essere inclusi in un file del thesaurus, Amazon Kendra puoi cercare sia nella versione con trattino del termine che nella versione senza trattini del termine. Ad esempio, se cerchi «terze parti» e «terze parti», Amazon Kendra restituisce documenti che corrispondono a entrambe le versioni di tali termini.

Per i sinonimi che contengono stopword o parole di uso comune, Amazon Kendra restituisce documenti che corrispondono a termini, compresi i stopword. Ad esempio, puoi creare una regola per i sinonimi per mappare «on boarding» e «onboarding». Non è possibile utilizzare solo le parole chiave per i sinonimi. Ad esempio, se si cerca «on», Amazon Kendra non è possibile restituire tutti i documenti che contengono «on».

Alcune regole relative ai sinonimi vengono ignorate. Ad esempio, `a => b` è una regola, ma `a => a` viene ignorata e non conta come regola.

Il conteggio dei termini è il numero di termini univoci nel file theaurus. Il file di esempio seguente include termini`AWS CodeStar`,`ML`, `Machine Learning` `autoscaling group``ASG`, e altro.

È previsto un numero massimo di regole relative ai sinonimi per thesaurus e un numero massimo di sinonimi per termine. Per ulteriori informazioni, consulta [Quote per Amazon Kendra](quotas.md).

L'esempio seguente mostra un file del thesaurus con regole relative ai sinonimi. Ogni riga contiene una singola regola per i sinonimi. Le righe e i commenti vuoti vengono ignorati.

```
# Lines starting with pound are comments and blank lines are ignored.

# Synonym relationships can be defined as unidirectional or bidirectional relationships.

# Unidirection relationships are represented by any term sequence 
# on the left hand side (LHS) of "=>" followed by synonyms on the right hand side (RHS)
CodeStar => AWS CodeStar
# This will map CodeStar to AWS CodeStar, but not vice-versa

# To map terms vice versa
ML => Machine Learning
Machine Learning => ML

# Multiple synonym relationships may be defined in one line as well by comma seperation.
autoscaling group, ASG => Auto Scaling group, autoscaling
# The above is equivalent to:
# autoscaling group => Auto Scaling group, autoscaling
# ASG => Auto Scaling group, autoscaling

# Bi-directional synonyms are comma separated terms with no "=>"
DNS, Route53, Route 53
# DNS, Route53, and Route 53 map to one another and are interchangeable at match time
# The above is equivalent to:
# DNS => Route53, Route 53
# Route53 => DNS, Route 53
# Route 53 => DNS, Route53

# Overlapping LHS terms will be merged
Beta => Alpha
Beta => Gamma
Beta, Delta
# is equivalent to:
# Beta => Alpha, Gamma, Delta
# Delta => Beta

# Each line contains a single synonym rule.
# Synonym rule count is the total number of lines defining synonym relationships
# Term count is the total number of unique terms for all rules.  
# Comments and blanks lines do not count.
```

# Aggiungere un thesaurus a un indice
<a name="index-synonyms-adding-thesaurus-file"></a>

Le procedure seguenti mostrano come aggiungere un file del thesaurus contenente sinonimi a un indice. La visualizzazione degli effetti del file del thesaurus aggiornato può richiedere fino a 30 minuti. Per ulteriori informazioni sul file del thesaurus, vedere. [Creazione di un file del thesaurus](index-synonyms-creating-thesaurus-file.md) 

------
#### [ Console ]

**Per aggiungere un thesaurus**

1. **Nel riquadro di navigazione a sinistra, sotto l'indice in cui desideri aggiungere un elenco di sinonimi, il tuo thesaurus, scegli Sinonimi.** 

1. **Nella pagina dei **sinonimi**, scegli Aggiungi Thesaurus.** 

1. In **Define thesaurus**, assegnate al thesaurus un nome e una descrizione opzionale.

1. Nelle **impostazioni del thesaurus**, specificate il percorso del file del Amazon S3 thesaurus. Il file deve pesare meno di 5 MB.

1. Per **IAM Role**, seleziona un ruolo o seleziona **Crea un nuovo ruolo** e specifica un nome di ruolo per creare un nuovo ruolo. Amazon Kendra utilizza questo ruolo per accedere alla Amazon S3 risorsa per tuo conto. Il ruolo IAM ha il prefisso "AmazonKendra-». 

1. Scegli **Salva** per salvare la configurazione e aggiungere il thesaurus. Una volta inserito, il thesaurus è attivo e i sinonimi vengono evidenziati nei risultati. La visualizzazione degli effetti del file del thesaurus può richiedere fino a 30 minuti. 

------
#### [ CLI ]

Per aggiungere un thesarus a un indice con, chiamate: AWS CLI`create-thesaurus` 

```
aws kendra create-thesaurus \
--index-id index-id \
--name "thesaurus-name" \
--description "thesaurus-description" \
--source-s3-path "Bucket=bucket-name,Key=thesaurus/synonyms.txt" \
--role-arn role-arn
```

Chiama `list-thesauri` per vedere un elenco di thesaurus:

```
aws kendra list-thesauri \
--index-id index-id
```

Per visualizzare i dettagli di un thesaurus, chiamate: `describe-thesaurus`

```
aws kendra describe-thesaurus \
--index-id index-id \
--index-id thesaurus-id
```

La visualizzazione degli effetti del file del thesaurus può richiedere fino a 30 minuti.

------
#### [ Python ]

```
import boto3
from botocore.exceptions import ClientError
import pprint
import time

kendra = boto3.client("kendra")

print("Create a thesaurus")

thesaurus_name = "thesaurus-name"
thesaurus_description = "thesaurus-description"
thesaurus_role_arn = "role-arn"

index_id = "index-id"

s3_bucket_name = "bucket-name"
s3_key = "thesaurus-file"
source_s3_path= {
    'Bucket': s3_bucket_name,
    'Key': s3_key
}

try:
    thesaurus_response = kendra.create_thesaurus(
        Description = thesaurus_description,
        Name = thesaurus_name,
        RoleArn = thesaurus_role_arn,
        IndexId = index_id,
        SourceS3Path = source_s3_path
    )

    pprint.pprint(thesaurus_response)

    thesaurus_id = thesaurus_response["Id"]

    print("Wait for Kendra to create the thesaurus.")

    while True:
        # Get thesaurus description
        thesaurus_description = kendra.describe_thesaurus(
            Id = thesaurus_id,
            IndexId = index_id
        )
        # If status is not CREATING quit
        status = thesaurus_description["Status"]
        print("Creating thesaurus. Status: " + status)
        if status != "CREATING":
            break
        time.sleep(60)

except ClientError as e:
        print("%s" % e)

print("Program ends.")
```

------
#### [ Java ]

```
package com.amazonaws.kendra;

import software.amazon.awssdk.services.kendra.KendraClient;
import software.amazon.awssdk.services.kendra.model.CreateThesaurusRequest;
import software.amazon.awssdk.services.kendra.model.CreateThesaurusResponse;
import software.amazon.awssdk.services.kendra.model.DescribeThesaurusRequest;
import software.amazon.awssdk.services.kendra.model.DescribeThesaurusResponse;
import software.amazon.awssdk.services.kendra.model.S3Path;
import software.amazon.awssdk.services.kendra.model.ThesaurusStatus;

public class CreateThesaurusExample {

  public static void main(String[] args) throws InterruptedException {

    KendraClient kendra = KendraClient.builder().build();

    String thesaurusName = "thesaurus-name";
    String thesaurusDescription = "thesaurus-description";
    String thesaurusRoleArn = "role-arn";

    String s3BucketName = "bucket-name";
    String s3Key = "thesaurus-file";
    String indexId = "index-id";

    System.out.println(String.format("Creating a thesaurus named %s", thesaurusName));
    CreateThesaurusRequest createThesaurusRequest = CreateThesaurusRequest
        .builder()
        .name(thesaurusName)
        .indexId(indexId)
        .description(thesaurusDescription)
        .roleArn(thesaurusRoleArn)
        .sourceS3Path(S3Path.builder()
            .bucket(s3BucketName)
            .key(s3Key)
            .build())
        .build();
    CreateThesaurusResponse createThesaurusResponse = kendra.createThesaurus(createThesaurusRequest);
    System.out.println(String.format("Thesaurus response %s", createThesaurusResponse));

    String thesaurusId = createThesaurusResponse.id();

    System.out.println(String.format("Waiting until the thesaurus with ID %s is created.", thesaurusId));

    while (true) {
      DescribeThesaurusRequest describeThesaurusRequest = DescribeThesaurusRequest.builder()
          .id(thesaurusId)
          .indexId(indexId)
          .build();
      DescribeThesaurusResponse describeThesaurusResponse = kendra.describeThesaurus(describeThesaurusRequest);
      ThesaurusStatus status = describeThesaurusResponse.status();
      if (status != ThesaurusStatus.CREATING) {
        break;
      }

      TimeUnit.SECONDS.sleep(60);
    }

    System.out.println("Thesaurus creation is complete.");
  }
}
```

------

# Aggiornamento di un thesaurus
<a name="index-synonyms-update"></a>

È possibile modificare la configurazione di un thesaurus dopo la sua creazione. È possibile modificare dettagli come il nome del thesaurus e le informazioni IAM. Puoi anche modificare la posizione del percorso del file del thesaurus Amazon S3. Se modifichi il percorso del file del thesaurus, Amazon Kendra sostituisce il thesaurus esistente con il thesaurus specificato nel percorso aggiornato. 

La visualizzazione degli effetti del file del thesaurus aggiornato può richiedere fino a 30 minuti. 

**Nota**  
In caso di errori di convalida o di sintassi nel file del thesaurus, viene mantenuto il file del thesaurus caricato in precedenza. 

Le seguenti procedure mostrano come modificare i dettagli del thesaurus. 

------
#### [ Console ]

**Per modificare i dettagli del thesaurus**

1. **Nel riquadro di navigazione a sinistra, sotto l'indice che desideri modificare, scegli Sinonimi.** 

1. **Nella pagina dei **sinonimi**, selezionate il thesaurus che desiderate modificare, quindi scegliete Modifica.** 

1. Nella pagina **Aggiorna il thesaurus, aggiorna i dettagli del thesaurus**. 

1. (Facoltativo) Scegliete **Modifica il percorso del file del thesaurus, quindi specificate un Amazon S3 percorso** per il nuovo file del thesaurus. Il file del thesaurus esistente viene sostituito dal file specificato. Se non modificate il percorso, Amazon Kendra ricarica il thesaurus dal percorso esistente. 

   Se si seleziona **Mantieni il file del thesaurus corrente, Amazon Kendra non ricarica il file del** thesaurus. 

1. Scegli **Salva per salvare la configurazione**. 

Puoi anche ricaricare il thesaurus dal percorso del thesaurus esistente. 

**Per ricaricare un thesaurus da un percorso esistente**

1. **Nel riquadro di navigazione a sinistra, sotto l'indice che desideri modificare, scegli Sinonimi.** 

1. **Nella pagina dei **sinonimi**, seleziona il thesaurus che desideri ricaricare, quindi scegli Aggiorna.** 

1. Nella pagina **Ricarica il file del thesaurus, confermate di voler aggiornare il file del** thesaurus. 

------
#### [ CLI ]

Per aggiornare un thesaurus, chiamate: `update-thesaurus` 

```
aws kendra update-thesaurus \
--index-id index-id \
--name "thesaurus-name" \
--description "thesaurus-description" \
--source-s3-path "Bucket=bucket-name,Key=thesaurus/synonyms.txt" \
--role-arn role-arn
```

------
#### [ Python ]

```
import boto3
from botocore.exceptions import ClientError
import pprint
import time

kendra = boto3.client("kendra")

print("Update a thesaurus")

thesaurus_name = "thesaurus-name"
thesaurus_description = "thesaurus-description"
thesaurus_role_arn = "role-arn"

thesaurus_id = "thesaurus-id"
index_id = "index-id"

s3_bucket_name = "bucket-name"
s3_key = "thesaurus-file"
source_s3_path= {
    'Bucket': s3_bucket_name,
    'Key': s3_key
}

try:
    kendra.update_thesaurus(
        Id = thesaurus_id,
        IndexId = index_id,
        Description = thesaurus_description,
        Name = thesaurus_name,
        RoleArn = thesaurus_role_arn,
        SourceS3Path = source_s3_path
    )
    
    print("Wait for Kendra to update the thesaurus.")

    while True:
        # Get thesaurus description
        thesaurus_description = kendra.describe_thesaurus(
            Id = thesaurus_id,
            IndexId = index_id
        )
        # If status is not UPDATING quit
        status = thesaurus_description["Status"]
        print("Updating thesaurus. Status: " + status)
        if status != "UPDATING":
            break
        time.sleep(60)

except ClientError as e:
        print("%s" % e)

print("Program ends.")
```

------
#### [ Java ]

```
package com.amazonaws.kendra;

import software.amazon.awssdk.services.kendra.KendraClient;
import software.amazon.awssdk.services.kendra.model.UpdateThesaurusRequest;
import software.amazon.awssdk.services.kendra.model.DescribeThesaurusRequest;
import software.amazon.awssdk.services.kendra.model.DescribeThesaurusResponse;
import software.amazon.awssdk.services.kendra.model.S3Path;
import software.amazon.awssdk.services.kendra.model.ThesaurusStatus;

public class UpdateThesaurusExample {

  public static void main(String[] args) throws InterruptedException {

    KendraClient kendra = KendraClient.builder().build();

    String thesaurusName = "thesaurus-name";
    String thesaurusDescription = "thesaurus-description";
    String thesaurusRoleArn = "role-arn";

    String s3BucketName = "bucket-name";
    String s3Key = "thesaurus-file";

    String thesaurusId = "thesaurus-id";
    String indexId = "index-id";

    UpdateThesaurusRequest updateThesaurusRequest = UpdateThesaurusRequest
        .builder()
        .id(thesaurusId)
        .indexId(indexId)
        .name(thesaurusName)
        .description(thesaurusDescription)
        .roleArn(thesaurusRoleArn)
        .sourceS3Path(S3Path.builder()
            .bucket(s3BucketName)
            .key(s3Key)
            .build())
        .build();
    kendra.updateThesaurus(updateThesaurusRequest);

    System.out.println(String.format("Waiting until the thesaurus with ID %s is updated.", thesaurusId));

    // a new source s3 path requires re-consumption by Kendra 
    // and so can take as long as a Create Thesaurus operation
    while (true) {
      DescribeThesaurusRequest describeThesaurusRequest = DescribeThesaurusRequest.builder()
          .id(thesaurusId)
          .indexId(indexId)
          .build();
      DescribeThesaurusResponse describeThesaurusResponse = kendra.describeThesaurus(describeThesaurusRequest);
      ThesaurusStatus status = describeThesaurusResponse.status();
      if (status != ThesaurusStatus.UPDATING) {
        break;
      }

      TimeUnit.SECONDS.sleep(60);
    }

    System.out.println("Thesaurus update is complete.");
  }
}
```

------

# Eliminazione di un thesaurus
<a name="index-synonyms-delete"></a>

Le seguenti procedure mostrano come eliminare un thesaurus. 

------
#### [ Console ]

1. **Nel riquadro di navigazione a sinistra, sotto l'indice che desideri modificare, scegli Sinonimi.** 

1. Nella pagina dei **sinonimi**, selezionate il thesaurus che desiderate eliminare. 

1. Nella pagina dei **dettagli del Thesaurus**, scegliete **Elimina**, quindi confermate l'eliminazione. 

------
#### [ CLI ]

Per eliminare un thesarus in un indice con, chiamate: AWS CLI`delete-thesaurus` 

```
aws kendra delete-thesaurus \
--index-id index-id \
--id thesaurus-id
```

------
#### [ Python ]

```
import boto3
from botocore.exceptions import ClientError

kendra = boto3.client("kendra")

print("Delete a thesaurus")

thesaurus_id = "thesaurus-id"
index_id = "index-id"

try:
    kendra.delete_thesaurus(
        Id = thesaurus_id,
        IndexId = index_id
    )

except ClientError as e:
        print("%s" % e)

print("Program ends.")
```

------
#### [ Java ]

```
package com.amazonaws.kendra;

import software.amazon.awssdk.services.kendra.KendraClient;
import software.amazon.awssdk.services.kendra.model.DeleteThesaurusRequest;

public class DeleteThesaurusExample {

  public static void main(String[] args) throws InterruptedException {

    KendraClient kendra = KendraClient.builder().build();

    String thesaurusId = "thesaurus-id";
    String indexId = "index-id";

    DeleteThesaurusRequest updateThesaurusRequest = DeleteThesaurusRequest
        .builder()
        .id(thesaurusId)
        .indexId(indexId)
        .build();
    kendra.deleteThesaurus(updateThesaurusRequest);
  }
}
```

------

# Punti salienti nei risultati di ricerca
<a name="index-synonyms-enabling-synonyms-in-results"></a>

L'evidenziazione dei sinonimi è attiva per impostazione predefinita. Le informazioni di evidenziazione sono incluse nei Amazon Kendra risultati delle query SDK e CLI. Se interagisci Amazon Kendra utilizzando l'SDK o la CLI, sei tu a determinare come visualizzare i risultati.

Le evidenziazioni sinonimiche avranno il tipo di evidenziazione. `THESAURUS_SYNONYM` Per ulteriori informazioni sulle evidenziazioni, vedete l'oggetto [Highlight](https://docs.aws.amazon.com/kendra/latest/APIReference/API_Highlight.html).