Panoramica delle query
IBM Watson® Discovery offre potenti funzionalità di ricerca dei contenuti attraverso query di ricerca.
Per richiamare i dati da Discovery dopo che sono stati inseriti, indicizzati e arricchiti, invia una query.
Quando i dati vengono aggiunti a Discovery, una rappresentazione di ciascun file viene memorizzata nell'indice come un documento in formato JSON. Gli arricchimenti applicati alle tue raccolte identificano le informazioni significative nei dati e le archiviano in nuovi campi in questi documenti. Per ricercare i tuoi dati, invia una query per restituire i documenti più pertinenti ed estrarre le informazioni che stai cercando.
Tipi di query
Discovery accetta uno dei seguenti tipi di query supportati:
- Query
-
Trova i documenti con valori di interesse in campi specifici nei documenti. Le query di questo tipo utilizzano la sintassi del linguaggio di query Discovery per definire i criteri di ricerca.
Parameter name:
query - NLQ (Natural Language Query)
-
Trova le risposte alle query scritte in linguaggio naturale. Le richieste NLQ accettano un valore stringa di testo.
Parameter name:
natural_language_query
Insieme alla query specificata utilizzando uno dei tipi di query supportati, è possibile includere uno o entrambi i seguenti parametri. I valori per questi parametri vengono specificati anche utilizzando la sintassi DQL (Query Language) Discovery:
filteraggregation
Per ulteriori informazioni sul linguaggio di query Discovery, vedi Panoramica di DQL.
Le query inoltrate dall'interfaccia utente del prodotto sono query in linguaggio naturale. Vengono specificati alcuni altri parametri supportati e vengono forniti valori predefiniti in base al tipo di progetto in uso. Per ulteriori informazioni, consultare Impostazioni query predefinite.
Discovery non registra i dati della richiesta di query. Non è possibile scegliere di richiedere la registrazione.
Scelta del tipo di query corretto
La seguente tabella riepiloga le funzionalità supportate per ciascun tipo di query. Utilizzarlo per determinare il tipo di query da inoltrare.
| Obiettivo | NLQ (Natural Language Query) | Discovery DQL (Query Language) |
|---|---|---|
| Restituisci passaggi dai documenti | ||
| Evidenzia termini nelle risposte (a meno che non siano abilitati i passaggi per documento) | ||
| Definisci parole di arresto o espansioni di query personalizzate | ||
| Ricerca campi o arricchimenti di documenti specifici | ||
| Utilizzare gli operatori, come ad esempio le clausole booleane nella ricerca | ||
| Abilita correzione ortografica | ||
| Aggiungi curations per restituire risposte hardcoded a determinate domande | ||
| Utilizza formazione pertinenza | ||
| Abilita la ricerca della risposta per restituire una risposta succinta da un passaggio | ||
| Utilizza richiamo tabella |
Analisi query
Quando si inoltra una query, viene analizzata la stringa di testo della query. Durante l'analisi della query, viene identificata la root (o lemma) di ciascun termine chiave nella query. Le parole di arresto che si trovano nella stringa di query originale vengono rimosse e vengono aggiunte le espansioni dei sinonimi definite per i termini che si trovano nella stringa di query originale. Questa versione avanzata della query è ciò che viene inoltrato a Discovery.
La stessa analisi viene eseguita su tutte le query, sia che vengano inoltrate come query in linguaggio naturale o utilizzando la sintassi Discovery Query Language.
Flusso di query
Il seguente diagramma mostra un'illustrazione concettuale di come viene gestita una richiesta di ricerca da Discovery.
I seguenti processi vengono mostrate nel diagramma di flusso:
- BM25
- Utilizza la corrispondenza migliore 25 (un algoritmo di richiamo delle informazioni probabilistiche) per calcolare un punteggio di pertinenza per ogni documento restituito dalla ricerca. Il diagramma mostra che BM25 viene applicato ai risultati dei documenti dalle richieste di query, ma non è limitato alle richieste di query. Viene anche utilizzato insieme ad altre tecniche come parte del processo del ranker di addestramento della rilevanza applicato ai risultati della query in linguaggio naturale.
- Cure dei contenuti
- Se la query in linguaggio naturale corrisponde a una query curation predefinita, vengono restituiti alcuni documenti e, probabilmente, un frammento codificato. Non esiste alcun parametro di query per abilitare una cura. Per utilizzare le curazioni, è necessario definirle in modo programmatico (Crea metodo di curazione). L'output di tutte le curazioni viene unito con l'output del ranker di addestramento Relevancy o dei risultati QPP.
- Formazione della pertinenza
- Un modello che è possibile definire e applicare facoltativamente a un progetto per calcolare il punteggio dei documenti per la pertinenza. Non esiste un parametro di query per abilitare l'addestramento della pertinenza. Per utilizzare la formazione della rilevanza, devi eseguire correttamente il training del progetto in modo programmatico (Create training query method) o utilizzando l'interfaccia utente del prodotto.
- QPP
- Un algoritmo Previsione prestazioni query che, data una query e un elenco di risultati principali, produce un punteggio che determina quanto sia rilevante un documento. Utilizzato solo se non è disponibile alcun ranker di addestramento Relevancy.
- filtro
- Il parametro
filterpuò essere passato insieme alle richiestequeryenatural_language_queryper rimuovere i documenti che non soddisfano determinati criteri dalla serie di risultati. Il filtro viene visualizzato come ultimo passo nella fase di richiamo del documento. Tuttavia, viene utilizzato in momenti differenti nel flusso. Il suo posizionamento nel diagramma viene scelto per sottolineare il fatto che tutti i documenti che non corrispondono alla definizione del filtro vengono esclusi dalla serie di risultati. L'esclusione si applica anche ai documenti che potrebbero essere specificati in una curation. - Recupero del passaggio
- Restituisce i passaggi dai documenti quando il parametro
passages.enabled=trueè incluso con una richiesta di query in linguaggio naturale. - Ricerca risposta
- Quando il parametro
passages.find_answers=trueè incluso con una richiesta di query in linguaggio naturale, restituisce risposte succinte dai passaggi insieme ai passaggi estratti dai documenti. Se la ricerca della risposta è abilitata, il punteggio di confidenza finale per ogni risultato della ricerca è una combinazione dei punteggi di confidenza della ricerca della risposta, del richiamo del passaggio e della ricerca QPP o Reranked, qualunque sia il metodo utilizzato. - table retrieval
- Restituisce informazioni dalle tabelle nei documenti quando il parametro
table_results.enabled=trueè incluso con una richiesta di interrogazione in linguaggio naturale.
Limiti query
Una query è una qualsiasi operazione che inoltra una richiesta POST all'endpoint /query dell'API. Tali operazioni comprendono le query inoltrate utilizzando l'API. Non include le query inoltrate dalla barra di ricerca
nella pagina Migliora e personalizza dell'interfaccia utente del prodotto.
Una query viene conteggiata solo se la richiesta ha esito positivo, il che significa che restituisce una risposta (con codice messaggio 200).
Il numero di query di ricerca che puoi inoltrare al mese per istanza del servizio dipende dal tipo di piano Discovery.
| Pianifica | Query al mese per istanza del servizio |
|---|---|
| Cloud Pak for Data | Illimitato |
| Premium | Illimitato |
| Enterprise | Illimitato |
| Plus (include la versione di prova) | 500,000 |
Solo per i piani Enterprise, la tua fatturazione etichetta le richieste generate sia dalle ricerche di query che dalle chiamate API di analisi come "Query". Per ulteriori informazioni sulle chiamate API Analyze, consulta Analyze API limits.
Il numero di query che possono essere elaborate al secondo per istanza del servizio dipende dal tipo di piano Discovery.
| Pianifica | Query simultanee per istanza del servizio |
|---|---|
| Cloud Pak for Data | Illimitato |
| Premium | 50 |
| Enterprise | 5 |
| Plus (include la versione di prova) | 5 |
Per informazioni sui prezzi, vedi Piani dei prezzi diDiscovery.
Stima dell'utilizzo della query
Come stimare il numero di query che la tua applicazione utilizzerà al mese dipende dal tuo caso d'uso.
- Per i casi d'uso che si concentrano maggiormente sull'arricchimento e sull'analisi dei dati o in cui l'output dell'elaborazione del documento non viene ricercato in modo intensivo, è possibile stimare i numeri di query in base al numero totale di documenti.
- Per i casi di utilizzo in cui molti utenti interagiscono con l'applicazione che utilizza Discovery, puoi stimare calcolando il numero di ricerche per utente moltiplicato per il numero di utenti previsti. Ad esempio, il 50% delle domande inoltrate dagli utenti a un assistente virtuale probabilmente riceveranno risposta da Discovery. Con 100.000 utenti al mese e una media di 3 domande per utente, puoi aspettarti 15.000 query al mese. (10.000 utenti/mese * 3 query/utente * 50% to Discovery = 15.000)
Query con sicurezza a livello di documento abilitata
IBM Cloud Pak for Data IBM Software Hub
Queste informazioni si applicano solo alle distribuzioni installate.
Se si abilita la sicurezza a livello di documento per una raccolta, solo i documenti a cui l'utente corrente può accedere vengono restituiti nei risultati della ricerca. Per ulteriori informazioni, consultare Configurazione della sicurezza a livello di documento.
Per restituire i risultati della ricerca che rispettano le restrizioni di protezione, l'utente corrente deve soddisfare questi requisiti:
- Accedi alla tua istanza Discovery.
- Avere accesso all'origine dati.
Se l'utente corrente non soddisfa questi requisiti, non viene restituito alcun risultato della ricerca.
Il nome utente associato alla tua istanza di Discovery viene utilizzato per generare un token di autorizzazione. Il token viene utilizzato per autenticare le query Discovery.
Per generare ciascun token di accesso, esegui questo comando:
curl -u "{username}:{password}" \
"https://{hostname}:{port}/v1/preauth/validateAuth"
Sostituisci {username} e {password} con le credenziali Discovery dell'utente.
Utilizza il token di connessione associato all'utente quando esegui la query.
curl -H "Authorization: Bearer {token}" \
'https://{hostname}/{instance_name}/v2/projects/{project_id}/collections/{Collection_ID}/query\?version\=2019-11-29'