La funzionalità di interpretazione delle query di Cloud Search interpreta automaticamente il operatori e filtri nella query di un utente e li converte in una query strutturata basata su operatori. L'interpretazione delle query utilizza operatori definiti nello schema, insieme ai documenti indicizzati, per ricavare la della query. Questa funzionalità consente a un utente di cercare parole chiave, pur ottenendo risultati precisi.
I risultati effettivi presentati all'utente dipendono dalla confidenza
dell'interpretazione della query. La confidenza si basa su diversi fattori:
incluso il punto in cui le stringhe di query vengono
visualizzate nei documenti indicizzati. Una stringa, ad esempio
come nome dell'attore "Tom Hanks", apparendo costantemente in un
campo dello schema denominato actors
genera una maggiore affidabilità. La stessa stringa
("Tom Hanks"), che appare all'interno di un paragrafo, anziché in un campo dello schema, può
generano una minore confidenza. In caso di elevata affidabilità, i risultati
dall'interpretazione della query. Nel caso di modelli più deboli
di confidenza, i risultati dell'interpretazione della query vengono uniti a una
nei risultati di ricerca delle parole chiave.
Interpretazione di query di esempio
Supponi di avere un'origine dati, ad esempio un database, contenente informazioni sui film. La figura 1 mostra un esempio di query di ricerca e o l'interpretazione letterale.
![Panoramica dell'interpretazione delle query](https://developers.google.cn/static/cloud-search/images/query-interpretation.png?authuser=8&hl=it)
Sulla base di questa query di esempio, l'interpretazione della query svolge le seguenti operazioni:
Analizza lo schema e determina che gli oggetti di primo livello nell'origine dati sono classificati come
objecttype:movies
. L'interpretazione delle query ora sa che "film" nella query è un tipo di oggetto.Scansiona i documenti nell'origine dati, insieme allo schema, per determinare dove la stringa "action" . Se la stringa si verifica principalmente di un "genere" specifico campo dell'origine dati, poi l'interpretazione della query ha la certezza che "azione" è un valore della proprietà "gender" come definito nello schema. Se la stringa si verifica principalmente nel contesto di paragrafi di contenuto, il livello di confidenza dell'interpretazione della query diminuisce.
L'interpretazione della query risultante è:
actor:“tom hanks” genre:action objecttype:movies
L'interpretazione delle query è abilitata automaticamente per tutti i clienti di Cloud Search senza ulteriori interventi. Tuttavia, per un'interpretazione ottimale delle query, strutturare lo schema seguendo le istruzioni riportate in questo documento.
Strutturare lo schema per supportare l'interpretazione delle query
Struttura lo schema per garantire puoi trarre vantaggio dall'interpretazione delle query.
Attiva le interpretazioni del nome visualizzato
L'interpretazione delle query di Cloud Search utilizza
objectDefinitions
e
propertyDefinitions
in uno schema per interpretare la query di un utente
che consentono di analizzare i dati
e visualizzare i risultati. Per massimizzare i vantaggi di questi elementi dello schema, devi creare
nomi visualizzati intuitivi con
displayLabel
per i nomi delle proprietà,
objectDisplayLabel
per i nomi degli oggetti e operatorName
per gli operatori.
Il seguente schema mostra nomi visualizzati intuitivi per un oggetto film:
{
"objectDefinitions": [
{
"name": "movie",
"options": {
"displayOptions": {
"objectDisplayLabel": "Films"
}
...
},
"propertyDefinitions": [
{
"name": "genre",
"isReturnable": true,
"isRepeatable": true,
"isFacetable": true,
"textPropertyOptions": {
"retrievalImportance": { "importance": "HIGHEST" },
"operatorOptions": {
"operatorName": "genre"
}
},
"displayOptions": {
"displayLabel": "Category"
}
},
...
]
}
]
}
Nell'esempio precedente:
La definizione dell'oggetto movie ha un
objectDisplayLabel
"Film".La proprietà genre-Definition ha un
operatorName
di tipo "gender" e una "Category"displayLabel
.
Questi nomi visualizzati consentono a Cloud Search di eseguire la seguente query interpretazioni:
- "film d'azione", "film con tipo di azione di genere" o "film di genere d'azione" sono
interpretato come
genre:action object:movies
. - "film di genere d'azione o thriller" viene interpretato come
objecttype:movies genre:(action OR thriller)
. - "film d'azione" o "film d'azione" è interpretato come
genre:action objecttype:movies
. - "film della categoria commedie" viene interpretato come
genre:comedy objecttype:movies
.
Abilita le interpretazioni di date, numeri e ordinamento
Devi definire gli attributi lessThanOperatorName
e greaterThanOperatorName
,
specificato in
IntegerOperatorOptions
, per tutte le date e
le proprietà numeriche. Queste impostazioni consentono di attivare
interpretazioni numeriche. Inoltre, per abilitare le interpretazioni dell'ordinamento,
imposta l'opzione isSortable
per le proprietà numeriche e di data. Le seguenti
che mostra come abilitare queste opzioni.
{
"objectDefinitions": [
{
"options": {
"displayOptions": {
"objectDisplayLabel": "Films"
}
},
"propertyDefinitions": [
{
"name": "runtime",
"isReturnable": true,
"isSortable": true,
"integerPropertyOptions": {
"orderedRanking": "DESCENDING",
"minimumValue": {
"value": 10
},
"maximumValue": {
"value": 500
},
"operatorOptions": {
"operatorName": "runtime",
"lessThanOperatorName": "runtimelessthan",
"greaterThanOperatorName": "runtimegreaterthan"
}
},
"displayOptions": {
"displayLabel": "Length"
}
},
{
"name": "releasedate",
"isReturnable": true,
"isSortable": true,
"datePropertyOptions": {
"operatorOptions": {
"operatorName": "releasedate",
"lessThanOperatorName": "releasedbefore",
"greaterThanOperatorName": "releasedafter"
}
}
}
]
}
]
}
Nell'esempio precedente:
- La proprietà numerica
runtime
si riferisce alla durata di un film. Laruntimelessthan
eruntimegreaterthan
sono impostati per questa proprietà. - La proprietà data
releaseDate
fa riferimento all'uscita di un film nel cinema.releasedbefore
ereleasedafter
sono impostati per questa proprietà.
Queste impostazioni consentono a Cloud Search di eseguire le seguenti interpretazioni delle query:
- Supponendo che l'anno sia il 2019, il termine "film usciti quest'anno" viene interpretato come
objecttype: movies releasedafter:2019-1-1 releasedbefore:2019-12-31
. - Supponendo che la settimana sia la terza di marzo, i "film usciti la scorsa settimana" sono
interpretato come
objecttype: movies releasedafter:2019-3-10 releasedbefore:2019-3-16
- "film con tempo di esecuzione inferiore a 90" viene interpretato come
objjecttype: movies runtimelessthan:90
. - Supponendo che l'anno sia il 2019, "film usciti quest'anno e di durata superiore a
120" viene interpretato come
releasedafter:2019-1-1 releasedbefore:2019-12-31 objecttype:movies runtimegreaterthan:120
. - "ordina i film per data di uscita" filtra in base a "objecttype: movies" e i risultati presentati sarebbero ordinati alla data di uscita con l'ordinamento predefinito in ordine crescente.
Abilita l'interpretazione di operatori riservati
Puoi anche utilizzare l'opzione integrata type
, before
, after
e objecttype
prenotata
per migliorare l'interpretazione delle query. Quando indicizza un documento, esegui la
seguenti:
Compila il campo
updateTime
nelItemMetadata
per utilizzare gli operatoribefore
eafter
. Questi consentono a Cloud Search di eseguire le seguenti interpretazioni delle query:- "film della scorsa settimana" elenca tutti i film aggiornati nel l'indicizzazione della settimana precedente.
- "film prima di gennaio 2019" elenca tutti i film indicizzati in precedenza Gennaio 2019.
Compila il campo
mimeType
inItemMetadata
per utilizzare il rilevamento automatico di di testo. Una query "video d'azione" elencherà tutti i documenti di film d'azione con un mime tipo diapplication/mp4
,application/mpeg4
,application/x-shockwave-flash
,video/
eapplication/vnd.google-apps.video
.
Limitazioni dell'interpretazione delle query
La funzionalità di interpretazione delle query presenta le seguenti limitazioni.
- L'interpretazione delle query funziona solo per questi ACL delle origini dati:
- Tutti i documenti sono pubblici del dominio (tutti gli utenti nel dominio possono accedervi).
- Tutti i documenti sono origini dati pubbliche (tutti coloro che hanno accesso all'origine dati) ACL).
- La maggior parte dei documenti nell'origine dati ha lo stesso ACL (tutti i documenti eredita ACL dallo stesso elemento container) senza lettori aggiuntivi definiti.
- Se più operatori di schema hanno lo stesso valore, l'interpretazione di
quel valore all'intent di un operatore per una query dipende dalla confidenza complessiva
fattore restituito dal sistema di interpretazione delle query. Ad esempio, supponiamo che
hanno le proprietà
priority
eseverity
con gli stessi nomi degli operatori definiti nello schema. Supponiamo che entrambi gli operatori possano avere i valori 0, 1, 2 o 3. In questo esempio, "0" in una query può fare riferimento al valore dell'operatore perpriority
oseverity
. Questi valori sono ambigui e il livello di confidenza è in basso. - Per impostazione predefinita, l'interpretazione delle query di Cloud Search riduce le maiuscole e le minuscole
durante l'interpretazione della query, ad eccezione degli operatori di testo definiti con
exactMatchWithOperator
. - L'operatore
source
non è supportato nelle query. - Le query che combinano termini basati su operatori e termini di testo libero non vengono viene interpretata correttamente. Ad esempio, la query "p0 Priority case gravità:s0" non poiché "casi con priorità p0" è un termine di testo libero mentre "severity:s0" è un termine basato su operatore.
- La strategia di interpretazione delle query combina sempre i risultati interpretati con risultati ordinari (non interpretati, con ranking per pertinenza). Non esegue un sostituzione della pagina dei risultati.