Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Amazon Kendra Classificazione intelligente per l'autogestione OpenSearch - Amazon Kendra

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à.

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à.

Amazon Kendra Classificazione intelligente per l'autogestione OpenSearch

Puoi sfruttare le funzionalità Amazon Kendra di ricerca semantica di cui dispone per migliorare i risultati di ricerca grazie al servizio di OpenSearchricerca open source autogestito basato sulla licenza Apache 2.0. Il plugin Amazon Kendra Intelligent Ranking rielabora semanticamente i risultati utilizzando. OpenSearch Amazon Kendra Lo fa comprendendo il significato e il contesto di una query di ricerca utilizzando campi specifici, come il corpo o il titolo del documento, dai risultati di ricerca predefiniti. OpenSearch

Prendiamo, ad esempio, questa query: «indirizzo principale del keynote». Poiché 'indirizzo' ha diversi significati, Amazon Kendra può dedurre il significato alla base della query per restituire informazioni pertinenti in linea con il significato previsto. In questo contesto, si tratta di un discorso programmatico alla conferenza. Un servizio di ricerca più semplice potrebbe non tenere conto dell'intento e potrebbe restituire risultati per un indirizzo su Main Street, ad esempio.

Il plugin Intelligent Ranking per OpenSearch è disponibile per la versione OpenSearch (autogestita) 2.4.0 e successive. È possibile installare il plug-in utilizzando uno script Bash di avvio rapido per creare una nuova immagine Docker OpenSearch con il plug-in Intelligent Ranking incluso. VediConfigurazione del plug-in di ricerca intelligente: questo è un esempio di configurazione per renderti operativo rapidamente.

Come funziona il plugin di ricerca intelligente

Il processo complessivo del plugin Intelligent Ranking for OpenSearch (autogestito) è il seguente:

  1. Un OpenSearch utente invia una query e OpenSearch fornisce una risposta alla query o un elenco di documenti pertinenti alla query.

  2. Il plugin Intelligent Ranking prende la risposta alla query ed estrae le informazioni dai documenti.

  3. Il plug-in Intelligent Ranking effettua una chiamata all'API Rescore di Amazon Kendra Intelligent Ranking.

  4. L'RescoreAPI prende le informazioni estratte dai documenti e riordina semanticamente i risultati della ricerca.

  5. L'RescoreAPI invia i risultati della ricerca riclassificati al plugin. Il plugin riorganizza i risultati della ricerca nella risposta di OpenSearch ricerca per riflettere la nuova classificazione semantica.

Il plugin Intelligent Ranking riclassifica i risultati utilizzando i campi «body» e «title». Questi campi del plug-in possono essere mappati sui campi OpenSearch dell'indice che meglio si adattano alla definizione del corpo e del titolo del documento. Ad esempio, se l'indice contiene capitoli di un libro con campi come «chapter_heading» e «chapter_contents», puoi mappare il primo a «title» e il secondo a «body» per ottenere i migliori risultati.

Configurazione del plug-in di ricerca intelligente

Di seguito viene descritto come eseguire una configurazione rapida OpenSearch (autogestita) con il plug-in Intelligent Ranking.

Configurazione OpenSearch (autogestita) con il plug-in Intelligent Ranking (configurazione rapida)

Se stai già utilizzando l'immagine Dockeropensearch:2.4.0, puoi utilizzare questo Dockerfile per creare una nuova immagine di OpenSearch 2.4.0 con il plug-in Intelligent Ranking. Includi un contenitore per la nuova immagine nel file docker-compose.yml o nel file opensearch.yml. Includi anche l'ID del piano di esecuzione di rescore generato dalla creazione di un piano di esecuzione di rescore, insieme alle informazioni sulla regione e sull'endpoint. Vedi il passaggio 2 per creare un piano di esecuzione di rescore.

Se in precedenza hai scaricato una versione dell'immagine opensearch Docker precedente alla 2.4.0, devi utilizzare l'immagine Docker opensearch:2.4.0 o una versione successiva e creare una nuova immagine con il plug-in Intelligent Ranking incluso.

  1. Scarica e installa Docker Desktop per il tuo sistema operativo. Docker Desktop include Docker Compose e Docker Engine. Si consiglia di verificare se il computer soddisfa i requisiti di sistema indicati nei dettagli di installazione di Docker.

    Puoi anche aumentare i requisiti di utilizzo della memoria all'interno delle impostazioni del tuo Docker Desktop. Sei responsabile dei requisiti di utilizzo di Docker al di fuori dei limiti di utilizzo disponibili gratuitamente per i servizi Docker. Vedi gli abbonamenti Docker.

    Verifica che lo stato di Docker Desktop sia «in esecuzione».

  2. Fornisci Amazon Kendra Intelligent Ranking e i tuoi requisiti di capacità. Una volta effettuato il provisioning di Amazon Kendra Intelligent Ranking, ti verrà addebitato ogni ora in base alle unità di capacità impostate. Consulta le informazioni sul piano gratuito e sui prezzi.

    Utilizzi l'CreateRescoreExecutionPlanAPI per fornire ilRescore API. Se non hai bisogno di più unità di capacità rispetto alla singola unità predefinita, non aggiungere altre unità e fornisci solo un nome per il tuo piano di esecuzione di rescore. Puoi anche aggiornare i requisiti di capacità utilizzando l'UpdateRescoreExecutionPlanAPI. Per ulteriori informazioni, consulta Classificazione semantica dei risultati di un servizio di ricerca.

    Facoltativamente, puoi andare al passaggio 3 per creare un piano di esecuzione di rescore predefinito quando esegui lo script Bash di avvio rapido.

    Nota per il passaggio 4 l'ID del piano di esecuzione di rescore incluso nella risposta.

    CLI
    aws kendra-ranking create-rescore-execution-plan \ --name MyRescoreExecutionPlan \ --capacity-units '{"RescoreCapacityUnits":<integer number of additional capacity units>}' Response: { "Id": "<rescore execution plan ID>", "Arn": "arn:aws:kendra-ranking:<region>:<account-id>:rescore-execution-plan/<rescore-execution-plan-id>" }
    Python
    import boto3 from botocore.exceptions import ClientError import pprint import time kendra_ranking = boto3.client("kendra-ranking") print("Create a rescore execution plan.") # Provide a name for the rescore execution plan name = "MyRescoreExecutionPlan" # Set your required additional capacity units # Don't set capacity units if you don't require more than 1 unit given by default capacity_units = 1 try: rescore_execution_plan_response = kendra_ranking.create_rescore_execution_plan( Name = name, CapacityUnits = {"RescoreCapacityUnits":capacity_units} ) pprint.pprint(rescore_execution_plan_response) rescore_execution_plan_id = rescore_execution_plan_response["Id"] print("Wait for Amazon Kendra to create the rescore execution plan.") while True: # Get the details of the rescore execution plan, such as the status rescore_execution_plan_description = kendra_ranking.describe_rescore_execution_plan( Id = rescore_execution_plan_id ) # When status is not CREATING quit. status = rescore_execution_plan_description["Status"] print(" Creating rescore execution plan. Status: "+status) time.sleep(60) if status != "CREATING": break except ClientError as e: print("%s" % e) print("Program ends.")
    aws kendra-ranking create-rescore-execution-plan \ --name MyRescoreExecutionPlan \ --capacity-units '{"RescoreCapacityUnits":<integer number of additional capacity units>}' Response: { "Id": "<rescore execution plan ID>", "Arn": "arn:aws:kendra-ranking:<region>:<account-id>:rescore-execution-plan/<rescore-execution-plan-id>" }
  3. Scarica lo script Bash di avvio rapido da GitHub per la tua versione di OpenSearch selezionando il ramo della versione dal menu a discesa del ramo principale.

    Questo script utilizza immagini Docker OpenSearch e OpenSearch dashboard che utilizzano la versione selezionata nel GitHub repository per lo script. Scarica un file zip per il plug-in Intelligent Ranking e genera un file Dockerfile per creare una nuova immagine Docker OpenSearch che includa il plug-in. Crea anche un file docker-compose.yml che include contenitori per il plug-in Intelligent Ranking e OpenSearch le dashboard. OpenSearch Lo script aggiunge l'ID del piano di esecuzione di rescore, le informazioni sulla regione e l'endpoint (utilizza la regione) al file docker-compose.yml. Lo script viene quindi eseguito docker-compose up per avviare i contenitori per Intelligent Ranking incluso e Dashboards. OpenSearch OpenSearch Per fermare i contenitori senza rimuoverli, docker-compose stop esegui. Per rimuovere i contenitori, eseguidocker-compose down.

  4. Apri il tuo terminale e nella directory dello script Bash, esegui il seguente comando.

    bash search_processing_kendra_quickstart.sh -p <execution-plan-id> -r <region>

    Quando esegui questo comando, fornisci l'ID del piano di esecuzione di rescore che hai annotato nel passaggio 2 durante il provisioning di Amazon Kendra Intelligent Ranking, insieme alle informazioni sulla tua regione. Facoltativamente, puoi invece fornire Amazon Kendra Intelligent Ranking utilizzando l'opzione. --create-execution-plan Questo crea un piano di esecuzione di rescore con un nome e una capacità predefiniti.

    Per non perdere l'indice quando il contenitore temporaneo predefinito viene rimosso, puoi fare in modo che l'indice persista tra le esecuzioni fornendo il nome del volume di dati utilizzando l'opzione. --volume-name Se in precedenza hai creato un indice, puoi specificare il volume nel tuo file docker-compose.yml o opensearch.yml. Per lasciare docker-compose down -vintatti i volumi, non eseguirli.

    Lo script Bash di avvio rapido configura AWS le credenziali nel OpenSearch keystore per la connessione a Intelligent Ranking. Amazon Kendra Per fornire le AWS credenziali allo script, utilizzate l'--profileopzione per specificare il profilo. AWS Se l'--profileopzione non è specificata, lo script Bash di avvio rapido tenta di leggere AWS le credenziali (chiave di accesso/segreta, token di sessione opzionale) dalle variabili di ambiente e quindi dal profilo predefinito. AWS Se l'--profileopzione non è specificata e non viene trovata alcuna credenziale, lo script non passerà le credenziali al keystore. OpenSearch Se non viene specificata alcuna credenziale nel OpenSearch keystore, il plug-in controlla comunque le credenziali nella catena di provider di credenziali di default, incluse le credenziali del Amazon ECS contenitore o le credenziali del profilo di istanza fornite tramite il servizio di metadati. Amazon EC2

    Assicurati di aver creato un IAM ruolo con le autorizzazioni necessarie per richiamare Intelligent Ranking. Amazon Kendra Di seguito è riportato un esempio di IAM politica per concedere l'autorizzazione all'uso dell'RescoreAPI per uno specifico piano di esecuzione di rescore:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "kendra-ranking:Rescore", "Resource": "arn:aws:kendra-ranking:${Region}:${Account}:rescore-execution-plan/${RescoreExecutionPlanId}" } ] }

Esempio di docker-compose.yml

Un esempio di file docker-compose.yml che utilizza OpenSearch 2.4.0 o versione successiva con il plug-in Intelligent Ranking e Dashboards 2.4.0 o versione successiva. OpenSearch

version: '3' networks: opensearch-net: volumes: <volume-name>: services: opensearch-node: image: <Docker image tag name of OpenSearch with Intelligent Ranking plugin> container_name: opensearch-node environment: - cluster.name=opensearch-cluster - node.name=opensearch-node - discovery.type=single-node - kendra_intelligent_ranking.service.endpoint=https://kendra-ranking.<region>.api.aws - kendra_intelligent_ranking.service.region=<region> - kendra_intelligent_ranking.service.execution_plan_id=<rescore-execution-plan-id> ulimits: memlock: soft: -1 hard: -1 nofile: soft: 65536 hard: 65536 ports: - 9200:9200 - 9600:9600 networks: - opensearch-net volumes: <docker-volume-name>:/usr/share/opensearch/data opensearch-dashboard: image: opensearchproject/opensearch-dashboards:<your-version> container_name: opensearch-dashboards ports: - 5601:5601 environment: OPENSEARCH_HOSTS: '["https://opensearch-node:9200"]' networks: - opensearch-net

Esempio di Dockerfile e creazione di un'immagine

Un esempio di utilizzo della OpenSearch versione 2.4.0 o successiva con il plug-in Intelligent Ranking. Dockerfile

FROM opensearchproject/opensearch:<your-version> RUN /usr/share/opensearch/bin/opensearch-plugin install --batch https://github.com/opensearch-project/search-processor/releases/download/<your-version>/search-processor.zip

Creazione di un'immagine Docker per OpenSearch con il plug-in Intelligent Ranking.

docker build --tag=<Docker image tag name of OpenSearch with Intelligent Ranking plugin>

Interazione con il plugin di ricerca intelligente

Dopo aver configurato OpenSearch (gestito autonomamente) il plug-in Intelligent Ranking, puoi interagire con il plug-in utilizzando i comandi curl o le librerie OpenSearch client. Le credenziali predefinite per l'accesso OpenSearch con il plugin Intelligent Ranking sono il nome utente 'admin' e la password 'admin'.

Per applicare le impostazioni del plug-in Intelligent Ranking a un indice: OpenSearch

Curl
curl -XPUT "https://localhost:9200/<your-docs-index>/_settings" -u 'admin:admin' --insecure -H 'Content-Type: application/json' -d' { "index": { "plugin" : { "searchrelevance" : { "result_transformer" : { "kendra_intelligent_ranking": { "order": 1, "properties": { "title_field": "title_field_name_here", "body_field": "body_field_name_here" } } } } } } } '
Python
pip install opensearch-py from opensearchpy import OpenSearch host = 'localhost' port = 9200 auth = ('admin', 'admin') client = OpenSearch( hosts = [{'host': host, 'port': port}], http_compress = True, # enables gzip compression for request bodies http_auth = auth, # client_cert = client_cert_path, # client_key = client_key_path, use_ssl = True, verify_certs = False, ssl_assert_hostname = False, ssl_show_warn = False, ca_certs = ca_certs_path ) setting_body = { "index": { "plugin" : { "searchrelevance" : { "result_transformer" : { "kendra_intelligent_ranking": { "order": 1, "properties": { "title_field": "title_field_name_here", "body_field": "body_field_name_here" } } } } } } } response = client.indices.put_settings(index_name, body=setting_body)
curl -XPUT "https://localhost:9200/<your-docs-index>/_settings" -u 'admin:admin' --insecure -H 'Content-Type: application/json' -d' { "index": { "plugin" : { "searchrelevance" : { "result_transformer" : { "kendra_intelligent_ranking": { "order": 1, "properties": { "title_field": "title_field_name_here", "body_field": "body_field_name_here" } } } } } } } '

È necessario includere il nome del campo di testo principale che si desidera utilizzare per modificare la classificazione, ad esempio il corpo del documento o il campo del contenuto del documento. Puoi anche includere altri campi di testo, come il titolo del documento o il riepilogo del documento.

Ora puoi emettere qualsiasi query e i risultati vengono classificati utilizzando il plug-in Intelligent Ranking.

Curl
curl -XGET "https://localhost:9200/<your-docs-index>/_search?pretty" -u 'admin:admin' --insecure -H 'Content-Type: application/json' -d' { "query" : { "match" : { "body_field_name_here": "intelligent systems" } } } '
Python
from opensearchpy import OpenSearch host = 'localhost' port = 9200 auth = ('admin', 'admin') client = OpenSearch( hosts = [{'host': host, 'port': port}], http_compress = True, # enables gzip compression for request bodies http_auth = auth, # client_cert = client_cert_path, # client_key = client_key_path, use_ssl = True, verify_certs = False, ssl_assert_hostname = False, ssl_show_warn = False, ca_certs = ca_certs_path ) query = { 'size': 10, "query" : { "match" : { "body_field_name_here": "intelligent systems" } } } response = client.search( body = query, index = index_name ) print('\nSearch results:') print(response)
curl -XGET "https://localhost:9200/<your-docs-index>/_search?pretty" -u 'admin:admin' --insecure -H 'Content-Type: application/json' -d' { "query" : { "match" : { "body_field_name_here": "intelligent systems" } } } '

Per rimuovere le impostazioni del plug-in Intelligent Ranking per un OpenSearch indice:

Curl
curl -XPUT "http://localhost:9200/<your-docs-index>/_settings" -H 'Content-Type: application/json' -d' { "index": { "plugin": { "searchrelevance": { "result_transformer": { "kendra_intelligent_ranking.*": null } } } } } '
Python
from opensearchpy import OpenSearch host = 'localhost' port = 9200 auth = ('admin', 'admin') client = OpenSearch( hosts = [{'host': host, 'port': port}], http_compress = True, # enables gzip compression for request bodies http_auth = auth, # client_cert = client_cert_path, # client_key = client_key_path, use_ssl = True, verify_certs = False, ssl_assert_hostname = False, ssl_show_warn = False, ca_certs = ca_certs_path ) setting_body = { "index": { "plugin": { "searchrelevance": { "result_transformer": { "kendra_intelligent_ranking.*": null } } } } } response = client.indices.put_settings(index_name, body=setting_body)
curl -XPUT "http://localhost:9200/<your-docs-index>/_settings" -H 'Content-Type: application/json' -d' { "index": { "plugin": { "searchrelevance": { "result_transformer": { "kendra_intelligent_ranking.*": null } } } } } '

Per testare il plug-in Intelligent Ranking su una determinata query o su determinati campi del corpo e del titolo:

Curl
curl -XGET "https://localhost:9200/<your-docs-index>/_search?pretty" -u 'admin:admin' --insecure -H 'Content-Type: application/json' -d' { "query": { "multi-match": { "query": "intelligent systems", "fields": ["body_field_name_here", "title_field_name_here"] } }, "size": 25, "ext": { "search_configuration": { "result_transformer": { "kendra_intelligent_ranking": { "order": 1, "properties": { "title_field": "title_field_name_here", "body_field": "body_field_name_here" } } } } } } '
Python
from opensearchpy import OpenSearch host = 'localhost' port = 9200 auth = ('admin', 'admin') client = OpenSearch( hosts = [{'host': host, 'port': port}], http_compress = True, # enables gzip compression for request bodies http_auth = auth, # client_cert = client_cert_path, # client_key = client_key_path, use_ssl = True, verify_certs = False, ssl_assert_hostname = False, ssl_show_warn = False, ca_certs = ca_certs_path ) # Index settings null for kendra_intelligent_ranking query = { "query": { "multi_match": { "query": "intelligent systems", "fields": ["body_field_name_here", "title_field_name_here"] } }, "size": 25, "ext": { "search_configuration": { "result_transformer": { "kendra_intelligent_ranking": { "order": 1, "properties": { "title_field": "title_field_name_here", "body_field": "body_field_name_here" } } } } } } response = client.search( body = query, index = index_name ) print('\nSearch results:') print(response)
curl -XGET "https://localhost:9200/<your-docs-index>/_search?pretty" -u 'admin:admin' --insecure -H 'Content-Type: application/json' -d' { "query": { "multi-match": { "query": "intelligent systems", "fields": ["body_field_name_here", "title_field_name_here"] } }, "size": 25, "ext": { "search_configuration": { "result_transformer": { "kendra_intelligent_ranking": { "order": 1, "properties": { "title_field": "title_field_name_here", "body_field": "body_field_name_here" } } } } } } '

Confronto OpenSearch dei risultati con Amazon Kendra i risultati

Puoi confrontare side-by-side OpenSearch (autogestiti) i risultati classificati con i risultati Amazon Kendra riclassificati. OpenSearch La versione 2.4.0 e successive di Dashboards offre side-by-side risultati che consentono di confrontare la classificazione dei documenti con quella OpenSearch dei documenti Amazon Kendra oppure il plug-in classifica i documenti per una query di ricerca.

Prima di poter confrontare i risultati OpenSearch classificati con quelli Amazon Kendra riclassificati, assicurati che le OpenSearch dashboard siano supportate da un server con il plug-in Intelligent Ranking. OpenSearch Puoi configurarlo usando Docker e uno script Bash di avvio rapido. Per informazioni, consulta Configurazione del plug-in di ricerca intelligente.

Di seguito viene descritto come confrontare OpenSearch e Amazon Kendra cercare i risultati nelle dashboard. OpenSearch Per ulteriori informazioni, consulta la Documentazione OpenSearch.

Confronto dei risultati della ricerca nelle dashboard OpenSearch
  1. Apri http://localhost:5601 e accedi a OpenSearch Dashboards. Le credenziali predefinite sono il nome utente 'admin' e la password 'admin'.

  2. Seleziona Search Relevance dai OpenSearch plugin nel menu di navigazione.

  3. Inserisci il testo da cercare nella barra di ricerca.

  4. Seleziona il tuo indice per Query 1 e inserisci una query in OpenSearch Query DSL. È possibile utilizzare la %SearchText% variabile per fare riferimento al testo di ricerca immesso nella barra di ricerca. Per un esempio di questa query, consulta OpenSearch Documentazione. I risultati restituiti per questa query sono i OpenSearch risultati senza utilizzare il plug-in Intelligent Ranking.

  5. Seleziona lo stesso indice per Query 2 e inserisci la stessa query in OpenSearch Query DSL. Inoltre, includi l'estensione kendra_intelligent_ranking e specifica l'elemento obbligatorio in base al quale body_field classificare. Puoi anche specificare il campo del titolo, ma il campo del corpo è obbligatorio. Per un esempio di questa query, vedi OpenSearch Documentazione. I risultati restituiti per questa query sono i risultati Amazon Kendra riclassificati utilizzando il plug-in Intelligent Ranking. Il plugin classifica fino a 25 risultati.

  6. Seleziona Cerca per restituire e confrontare i risultati.

PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.