La interpretazione delle query di Cloud Search converte automaticamente gli operatori e i filtri nella query di un utente in una query strutturata basata su operatori. La funzionalità utilizza gli operatori definiti nello schema e i documenti indicizzati per dedurre l'intenzione della query. In questo modo, gli utenti possono eseguire ricerche con un numero minimo di parole chiave e ottenere risultati precisi.
La presentazione dei risultati dipende dalla confidenza. La confidenza aumenta quando le stringhe di query vengono visualizzate in modo coerente in campi di schema specifici (ad es. "Tom Hanks" in un campo actors). La confidenza diminuisce quando le stringhe vengono visualizzate all'interno di un testo generale. Una confidenza elevata mostra solo i risultati interpretati, mentre una confidenza inferiore li combina con i risultati delle parole chiave standard.
Esempio di interpretazione delle query
Considera un database contenente informazioni sui film. La figura 1 mostra una query di ricerca di esempio e la relativa interpretazione.
Per questo esempio, l'interpretazione delle query:
- Determina dallo schema che gli oggetti di primo livello sono
objecttype:movies. - Scansiona i documenti per identificare dove si verifica "azione". Se viene visualizzato principalmente in un campo
genre, la confidenza aumenta che si tratti di un valore di proprietà per quel campo.
L'interpretazione risultante è:
actor:"tom hanks" genre:action objecttype:movies
L'interpretazione delle query è automatica per tutti gli utenti, ma puoi ottimizzarla strutturando lo schema come descritto nelle sezioni seguenti.
Strutturare lo schema per l'interpretazione delle query
L'ottimizzazione dello schema garantisce di usufruire dell'interpretazione delle query.
Attivare le interpretazioni dei nomi visualizzati
L'interpretazione delle query utilizza objectDefinitions e propertyDefinitions per interpretare le query. Crea nomi visualizzati intuitivi utilizzando
displayLabel
per le proprietà,
objectDisplayLabel
per gli oggetti e operatorName per gli operatori.
Questo esempio mostra i nomi visualizzati intuitivi per un oggetto film:
{
"objectDefinitions": [{
"name": "movie",
"options": {
"displayOptions": { "objectDisplayLabel": "Films" }
},
"propertyDefinitions": [{
"name": "genre",
"isReturnable": true,
"textPropertyOptions": {
"operatorOptions": { "operatorName": "genre" }
},
"displayOptions": { "displayLabel": "Category" }
}]
}]
}
Questi nomi visualizzati consentono interpretazioni come:
- "film d'azione" ->
genre:action object:movies - "film con genere azione o thriller" ->
objecttype:movies genre:(action OR thriller) - "film di categoria commedia" ->
genre:comedy objecttype:movies
Attivare le interpretazioni di date, numeri e ordinamenti
Definisci lessThanOperatorName e greaterThanOperatorName in
IntegerOperatorOptions
per tutte le proprietà di data e numeriche. Per attivare l'ordinamento, imposta isSortable.
Questo esempio attiva queste opzioni:
{
"objectDefinitions": [{
"propertyDefinitions": [
{
"name": "runtime",
"isSortable": true,
"integerPropertyOptions": {
"operatorOptions": {
"operatorName": "runtime",
"lessThanOperatorName": "runtimelessthan",
"greaterThanOperatorName": "runtimegreaterthan"
}
}
},
{
"name": "releasedate",
"isSortable": true,
"datePropertyOptions": {
"operatorOptions": {
"operatorName": "releasedate",
"lessThanOperatorName": "releasedbefore",
"greaterThanOperatorName": "releasedafter"
}
}
}
]
}]
}
Queste impostazioni consentono interpretazioni come:
- "film usciti quest'anno" ->
objecttype:movies releasedafter:2019-1-1 releasedbefore:2019-12-31 - "film con durata inferiore a 90" ->
objecttype:movies runtimelessthan:90
Attivare l'interpretazione degli operatori riservati
Utilizza gli operatori integrati come type, before, after, e objecttype:
- Compila
updateTimeinItemMetadataper utilizzarebeforeeafter. - Compila
mimeTypeinItemMetadataper il rilevamento automatico. Ad esempio, "video d'azione" elenca i documenti con tipi MIME video.
Limitazioni dell'interpretazione delle query
- Funziona solo per questi ACL dell'origine dati:
- Pubblico del dominio.
- Pubblico dell'origine dati.
- La maggior parte dei documenti condivide lo stesso ACL ereditato.
- I nomi degli operatori condivisi (ad es.
priorityeseverityche utilizzano entrambi 0-3) riducono la confidenza. - Per impostazione predefinita, l'interpretazione utilizza le lettere minuscole per i valori dei campi, a meno che tu non utilizzi
exactMatchWithOperator. - L'operatore
sourcenon è supportato. - I termini combinati di operatori e testo libero (ad es. "p0 cases severity:s0") non vengono interpretati.
- I risultati vengono sempre combinati con i risultati classificati in base alla pertinenza.