Filtrare con la comprensione del linguaggio naturale
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Questa pagina spiega come applicare la comprensione del linguaggio naturale per creare automaticamente
filtri per le query di ricerca e, di conseguenza, migliorare la qualità dei
risultati restituiti.
Puoi utilizzare questa funzionalità con le app di ricerca connesse a datastore di dati strutturati.
Informazioni sulla comprensione delle query in linguaggio naturale
Se hai un'app di ricerca personalizzata con dati strutturati,
le query in linguaggio naturale dei tuoi utenti possono essere riformattate come query
filtrate. In questo modo, i risultati di ricerca possono essere di qualità superiore rispetto alla ricerca di parole
nella stringa di query.
Ad esempio, una query in linguaggio naturale come "Find a coffee shop serving
banana bread" potrebbe essere riformulata come query e filtro:
"query": "banana bread", "filter": "type": ANY(\"cafe\").
L'utilizzo della comprensione delle query in linguaggio naturale è più semplice e flessibile rispetto alla scrittura di espressioni di filtro personalizzate. Per informazioni sulla scrittura di espressioni di filtro, vedi
Filtrare la ricerca personalizzata per dati strutturati o non strutturati.
Filtri rigidi e flessibili
Esistono due tipi di filtri che puoi applicare per la comprensione delle query in linguaggio naturale: rigidi
e flessibili.
Difficile. Per impostazione predefinita, i filtri estratti vengono applicati come
criteri obbligatori che un risultato deve soddisfare per essere restituito.
Il comportamento è simile a quello del campo filter nel messaggio
SearchRequest.
Morbido. Un'alternativa al filtro rigido è applicare un boost ai
risultati di ricerca. È più probabile che vengano restituiti risultati potenziati, ma
possono essere restituiti anche risultati che non soddisfano il criterio di potenziamento.
Il comportamento è simile a quello del campo boost_spec nel messaggio
SearchRequest.
Puoi sperimentare entrambi i tipi di filtro. Se le ricerche non restituiscono
risultati sufficienti, prova a utilizzare il filtro soft anziché quello rigido.
Per informazioni dettagliate su come applicare un filtro soft, vedi Ricerca con il filtro soft di seguito.
Esempi
Questa funzionalità è spiegata al meglio attraverso esempi:
Esempio: estrazione di campi dalle query (filtro rigido)
Questa funzionalità di comprensione delle query in linguaggio naturale viene spiegata attraverso l'esempio della ricerca di un hotel.
Prendi in considerazione la seguente query inviata a un datastore strutturati per un sito di hotel:
"Trovami un hotel adatto alle famiglie con almeno quattro stelle che costi meno
di 300 a notte, che mi permetta di portare il mio cane e che abbia il Wi-Fi gratuito".
Senza la comprensione delle query in linguaggio naturale, l'app di ricerca cerca documenti che contengono le parole
nella query.
Grazie alla comprensione delle query in linguaggio naturale e ai dati strutturati in modo appropriato, la ricerca è più
efficace perché parte del linguaggio naturale nella query viene sostituito con filtri.
Se i dati strutturati hanno campi per star_rating (numeri), price
(numeri) e amenities (stringhe), la query può essere formulata in modo da includere
i seguenti filtri:
Esempio: con un filtro di geolocalizzazione (filtro rigido)
Questo esempio è simile a quello precedente, tranne per il fatto che include un filtro di geolocalizzazione, che è un tipo speciale di filtro estratto.
Vertex AI Search è in grado di riconoscere le località in una query e
creare filtri di prossimità per le località.
Prendi in considerazione la seguente query effettuata su un sito di attività a livello statale:
"Trova un hotel chic ed elegante con almeno 4 stelle a San Francisco".
Grazie alla comprensione delle query in linguaggio naturale e al filtro di geolocalizzazione, la ricerca viene riformulata per
includere il seguente filtro per un hotel con almeno 4 stelle
e in un raggio di 10 km da San Francisco:
In questo esempio, GEO_DISTANCE è un indirizzo, ma in altre query potrebbe essere scritto come latitudine e longitudine, anche se la query originale conteneva un indirizzo.
Esempio: estrazione di campi dalle query (filtro soft)
Questa funzionalità di comprensione delle query in linguaggio naturale è spiegata attraverso l'esempio della ricerca
di un hotel, ma vengono mostrati alcuni risultati che non soddisfano tutti i criteri.
Prendi in considerazione la seguente query inviata a un sito di viaggi:
"Trovami un hotel adatto alle famiglie con almeno quattro stelle che costi meno
di 300 € a notte e che mi permetta di portare il mio cane".
Grazie alla comprensione delle query in linguaggio naturale e ai dati strutturati in modo appropriato, la ricerca è più
efficace perché sostituisce parte del linguaggio naturale nella query con filtri
soft. Se i dati strutturati hanno campi per star_rating (numeri), price
(numeri) e amenities (stringhe), la query può essere riscritta come
il seguente boost:
Condizione di boost estratta dalla query in linguaggio naturale:
In questo caso, potrebbero essere restituiti hotel con una valutazione inferiore o che non accettano animali domestici.
Limitazioni
Si applicano le seguenti limitazioni alla comprensione delle query in linguaggio naturale:
La comprensione delle query in linguaggio naturale non può essere applicata alle app di ricerca ibrida. Se provi a utilizzare la comprensione delle query in linguaggio naturale con un'app di ricerca ibrida, viene visualizzato un errore.
La comprensione delle query in linguaggio naturale funziona solo per le app di ricerca personalizzate che utilizzano datastore strutturati.
L'utilizzo della comprensione delle query in linguaggio naturale aumenta la latenza, quindi potresti scegliere di non utilizzarla
se la latenza è un problema.
Per la geolocalizzazione, la posizione deve essere descritta in modo esplicito. Non puoi utilizzare posizioni come "vicino a me" o "casa".
Il raggio per la geolocalizzazione è di 10 km e non è configurabile.
I campi booleani non possono essere utilizzati nei filtri. Ad esempio, se la query è "Trova
una camera d'albergo per non fumatori", un campo booleano come
"non_smoking": true non è utile, ma un campo stringa come
"non_smoking": "YES" può far parte del filtro.
Prima di iniziare
Prima di iniziare a utilizzare la comprensione delle query in linguaggio naturale, devi attivarla per gli archivi di dati strutturati collegati alle app che prevedi di utilizzare.
Per attivare la comprensione delle query in linguaggio naturale:
REST
Trova l'ID datastore. Se hai già l'ID
del tuodatastorei, vai al passaggio successivo.
Nella console Google Cloud , vai alla pagina AI Applications e
nel menu di navigazione, fai clic su Data Stores.
Se provi a utilizzare la comprensione delle query in linguaggio naturale prima che l'datastore sia pronto, la risposta
che ricevi è la stessa di quando filterExtractionCondition è impostato su DISABLED.
Cerca, convertendo le query in linguaggio naturale in filtri
Per eseguire una ricerca su una query in linguaggio naturale e ottenere risultati ottimizzati per le query in linguaggio naturale, segui questi passaggi:
Cerca, convertendo le località nelle query in filtri di geolocalizzazione
Per eseguire una ricerca su una query in linguaggio naturale e ottenere risultati ottimizzati per
le query in linguaggio naturale, inclusa la vicinanza alle località, procedi nel seguente modo:
Specificare i campi per le query in linguaggio naturale
Affinché un campo possa essere utilizzato come filtro nella comprensione delle query in linguaggio naturale, deve essere contrassegnato come
indicizzabile nello schema. Per informazioni generali sulla visualizzazione e la modifica di uno schema, consulta la sezione Aggiornare uno schema.
Vertex AI Search determina quali campi indicizzabili nello schema
hanno senso da utilizzare nei filtri di comprensione delle query in linguaggio naturale. Tuttavia, se
sono inclusi campi che non vuoi, devi creare una lista consentita per
specificare quali campi possono essere utilizzati.
Prendi in considerazione un sito di prenotazione di hotel, in cui sono presenti campi come
amenities, id, price_per_night, rating e room_types. Di questi, se
id è una stringa di caratteri e numeri, è probabile che Vertex AI Search
lo escluda dai campi utilizzati per la comprensione delle query in linguaggio naturale.
Tuttavia, se noti che Vertex AI Search restituisce risultati di query di scarsa qualità
perché non esclude i campi che dovrebbe, devi
specificare quali campi possono essere utilizzati. Ad esempio, se lo schema dell'hotel ha un
campo per renovation_status che non è utile ai clienti e potrebbe
essere imbarazzante per la catena alberghiera, puoi escluderlo dall'elenco dei
campi consentiti.
Esempio di record dell'datastore strutturati dei dati degli hotel.
{"title":"Miller-Jones","rating":1.7,"price_per_night":115.16,"id":2902,…],"amenities":["Spa","Parking","Restaurant"…],"renovation_status":"Restaurant and spa renovation planned for 2027"}
Un elenco consentito appropriato per i campi in questo esempio sarebbe ["amenities",
"price_per_night", "rating", "title"].
renovation_status non è presente nell'elenco.
Per specificare una lista consentita di campi che possono essere utilizzati in una query in linguaggio naturale
in una ricerca, procedi nel seguente modo:
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Difficile da capire","hardToUnderstand","thumb-down"],["Informazioni o codice di esempio errati","incorrectInformationOrSampleCode","thumb-down"],["Mancano le informazioni o gli esempi di cui ho bisogno","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-12-04 UTC."],[],[]]