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 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:
-
Un OpenSearch utente invia una query e OpenSearch fornisce una risposta alla query o un elenco di documenti pertinenti alla query.
-
Il plugin Intelligent Ranking prende la risposta alla query ed estrae le informazioni dai documenti.
-
Il plug-in Intelligent Ranking effettua una chiamata all'API Rescore di Amazon Kendra Intelligent Ranking.
-
L'
Rescore
API prende le informazioni estratte dai documenti e riordina semanticamente i risultati della ricerca. -
L'
Rescore
API 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.
-
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».
-
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 il
Rescore 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.
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
>" } -
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 eseguitodocker-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
. -
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 lasciaredocker-compose down -v
intatti 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'
--profile
opzione per specificare il profilo. AWS Se l'--profile
opzione 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'--profile
opzione 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 EC2Assicurati 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'
Rescore
API 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 -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 -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 -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 -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
-
Apri http://localhost:5601 e accedi a OpenSearch Dashboards. Le credenziali predefinite sono il nome utente 'admin' e la password 'admin'.
-
Seleziona Search Relevance dai OpenSearch plugin nel menu di navigazione.
-
Inserisci il testo da cercare nella barra di ricerca.
-
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. -
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 qualebody_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. -
Seleziona Cerca per restituire e confrontare i risultati.