Configura impostazioni dei campi

Questa pagina mostra come configurare i campi dello schema per impostare un'app per dati strutturati, per dati non strutturati con metadati o per dati di siti web con attributi strutturati personalizzati.

Le impostazioni dei campi aiutano a determinare in che modo la ricerca agenti utilizza i campi nei risultati. Puoi utilizzare la scheda Schema nella consoleGoogle Cloud per configurare le impostazioni dei campi.

La configurazione delle impostazioni dei campi è disponibile solo per le app con datastore contenenti dati strutturati o dati non strutturati con metadati.

Impostazioni del campo

Le seguenti impostazioni dei campi sono disponibili per molti tipi di campi nei tuoi dati di ricerca o dei consigli, ma non per tutti i tipi di dati. Uno schema contiene più impostazioni dei campi per i singoli campi e la tabella seguente contiene le impostazioni che possono essere applicate a un campo all'interno di uno schema. L'utilizzo di dati strutturati è vivamente consigliato per queste impostazioni dei campi:

Impostazione Definizione Finalità Esempio di caso d'uso
Indicizzabile

L'impostazione dei campi come indicizzabili consente operazioni come il filtraggio, l'incremento e la creazione di sfaccettature sui campi strutturati all'interno di un documento.

I campi di tipo Object non possono essere impostati su Indexable.

Se contrassegni un campo come Indexable, le ricerche saranno più rapide.

Tieni presente che contrassegnare un campo come Indexable aumenta le dimensioni dell'indice di ricerca e può rallentare l'indicizzazione.

In un datastore hotel, puoi impostare un campo, ad esempio hotel_chain, come indicizzabile. In questo modo puoi applicare operazioni di classificazione, filtraggio e boosting su hotel_chain. Ad esempio, puoi applicare un filtro in modo che la ricerca restituisca solo risultati di ricerca contenenti la catena alberghiera filtrata.
Ricercabile

I campi che hanno maggiori probabilità di essere correlati alle ricerche sono contrassegnati come Searchable. Un campo può essere ricercabile senza essere indicizzabile o recuperabile.

Solo i campi con valori di testo possono essere contrassegnati come ricercabili. Pertanto, un campo prezzo numerico può essere indicizzabile (per il filtraggio o la creazione di sfaccettature), ma non può essere ricercabile come testo completo.

Se imposti un campo su Ricercabile, il richiamo per quel campo nelle query di ricerca migliora, consentendo agli utenti di trovare contenuti, come pagine web, eseguendo query sul testo all'interno di questi campi. Se contrassegni un campo come ricercabile, puoi applicare il ranking. Di conseguenza, se contrassegni un numero eccessivo di campi come ricercabili, la precisione della ricerca può risentirne negativamente, in quanto l'algoritmo di ranking viene saturato e restituisce troppi risultati. Ciò può portare a risultati di ricerca irrilevanti.

Puoi applicare una ponderazione relativa ai campi ricercabili, ma grazie ai valori predefiniti robusti, questo è raramente necessario. Vedi la sezione Campi ricercabili per il peso di seguito.

Il sistema di ticket di assistenza di un provider di servizi internet memorizza ogni ticket come documento strutturato. Se questi documenti contengono campi di testo ricercabili, ad esempio issue_description o resolution_notes, un agente dell'assistenza può eseguire una query relativa ai contenuti di questi campi, ad esempio come risolvere i problemi di velocità di internet dopo il ripristino del modem. Il sistema mostrerebbe quindi i documenti che contengono uno qualsiasi di questi termini di ricerca, inclusi modem, internet, velocità, in uno o entrambi i campi issue_description o resolution_notes.

Corrispondenza con prefisso
(anteprima)

Consente di abbinare i campi di testo del prefisso utilizzando l'operatore STARTS_WITH nelle espressioni di filtro. Solo i campi di tipo String o String Array possono essere impostati su Corrispondenza prefisso.

Per saperne di più, vedi Rendere i campi disponibili per la corrispondenza parziale e con prefisso di seguito.

Se imposti un campo in modo che possa essere abbinato al prefisso, il motore di ricerca può abbinare le stringhe di query che sono prefissi del valore del campo. Questa opzione è particolarmente utile per abbinare identificatori, percorsi o codici gerarchici in cui è nota la parte iniziale della stringa. L'abbinamento del prefisso è limitato ai primi 12 caratteri del valore del campo normalizzato e aumenta le dimensioni dell'indice di ricerca. Non puoi impostare più di 10 campi come abbinabili al prefisso.

Hai un campo, ticket_id, che utilizza un formato come <country-code><city-code><number>. Esempi includono UKLON100, UKMAN100, UKMAN101 e USNY200. Per trovare tutti i biglietti di Manchester (Regno Unito), puoi impostare il campo ticket_id come abbinabile al prefisso e poi utilizzare il filtro ticket_id: STARTS_WITH("UKMAN"), che restituisce UKMAN100 e UKMAN101.

Parzialmente abbinabile
(anteprima)

Consente la corrispondenza parziale delle stringhe nei campi di testo utilizzando l'operatore CONTAINS nelle espressioni di filtro. Solo i campi di tipo String o String Array possono essere impostati in modo che corrispondano parzialmente.

Per saperne di più, vedi Rendere i campi disponibili per la corrispondenza parziale e con prefisso di seguito.

L'impostazione di un campo su corrispondenza parziale consente la corrispondenza basata su token all'interno di un campo, consentendo agli utenti di trovare contenuti quando è nota solo una parte del valore del campo. Il motore di ricerca confronta i token della query con i token nel valore del campo, indipendentemente dal loro ordine. Tieni presente che contrassegnare un campo come parzialmente corrispondente aumenta le dimensioni dell'indice di ricerca. Non puoi impostare più di 10 campi come parzialmente abbinabili.

Vuoi filtrare le regioni in Europa. I nomi region includono Central Europe e Eastern Europe. Se il filtro è region: ANY("Europe"), non otterrai alcuna corrispondenza. Tuttavia, se il campo region è impostato come parzialmente corrispondente, puoi filtrare con region: CONTAINS("Europe") e ottenere corrispondenze per Central Europe e Eastern Europe.

Suddivisione in facet dinamica Fornisce filtri sensibili al contesto per indirizzare meglio le ricerche degli utenti. Se imposti un campo come Dynamic Facetable, il sistema può generare automaticamente filtri interattivi (sfaccettature) in base ai valori univoci presenti nel campo. Se imposti un campo su Dynamic facetable, gli utenti possono perfezionare dinamicamente i risultati di ricerca selezionando categorie o attributi derivati direttamente dai dati importati, senza dover predefinire manualmente ogni possibile opzione di filtro. In questo modo, l'utente può restringere la ricerca a contenuti web molto specifici.
Utilizza Filtro dinamico con Ricercabile per ottenere risultati migliori, il che migliora sia il richiamo della ricerca sia la qualità dei filtri offerti all'utente.
Le pagine di una knowledge base aziendale interna, ad esempio le norme RU, vengono inserite con dati come department, document_type o last_modified_date. Se questi campi sono taggati come dynamic facetable, una ricerca di un dipendente per un termine come rimborso spese genera dinamicamente filtri interattivi in base ai risultati pertinenti trovati. In questo caso, l'interfaccia web potrebbe mostrare sfaccettature per Dipartimento: finanza, viaggi, Tipo di documento: norme, domande frequenti o Data ultima modifica: questo trimestre, l'anno scorso.
Recuperabile Quando una query di ricerca trova contenuti corrispondenti, il motore di ricerca può estrarre i valori dei campi recuperabili per visualizzarli o utilizzarli nell'applicazione, il che significa che le informazioni del documento originale vengono visualizzate nei risultati di ricerca. I campi chiave (identificatori univoci per i documenti) sono configurati come recuperabili. I campi recuperabili forniscono il contesto di ricerca distinguendo i campi i cui valori possono essere visualizzati da quelli da utilizzare solo nella logica di ricerca, ma i cui valori non devono essere mostrati all'utente finale. Per una ricerca di prodotti sul sito di un commerciante, product_id, name, price e un image_url sono campi tipici che vuoi impostare come recuperabili. D'altra parte, internal_tracking_code può essere indicizzato e filtrabile solo a fini amministrativi, ma non recuperabile nei risultati di ricerca pubblici.
Completabile Consente di utilizzare i contenuti di un campo per i suggerimenti per le query di ricerca. Per saperne di più, consulta Configurare il completamento automatico.

Questa impostazione consente di utilizzare i valori all'interno di questo campo per fornire suggerimenti per le query in tempo reale durante la digitazione degli utenti. Questa funzionalità aiuta a indirizzare gli utenti verso contenuti pertinenti e accelera il processo di ricerca. Alcuni fattori, come l'utilizzo del filtro in linguaggio naturale, possono influire su questo rendimento.

Se il campo completable è impostato per product_name, brand e category, quando l'utente digita Tech, i suggerimenti per il completamento automatico possono mostrare:
  • TechCo (dal campo brand)
  • TechCo UltraBook X1 (dal campo product_name)
  • Tecnologia GameMaster Pro (un altro prodotto del campo category)
Filtrabile Consente ai suggerimenti di utilizzare un campo per filtrare i risultati consigliati, determinando quali risultati di ricerca vedono gli utenti. Per informazioni sul filtraggio dei consigli, vedi Filtrare i consigli. L'impostazione di un campo su Filterable consente di personalizzare i consigli per gli utenti. Tieni presente che si applicano limiti di filtraggio. Un'impostazione del filtro per lingua e genere potrebbe essere: language_code: ANY("en", "fr") OR categories: ANY("drama").

Differenze tra le impostazioni di uso comune

Esistono differenze fondamentali tra le impostazioni dei campi Indicizzabile, Ricercabile e Recuperabile. La tabella riassume queste differenze.

Funzionalità Indicizzabile Disponibile per la ricerca Recuperabile
Ruolo principale Rende i contenuti del campo disponibili per il motore di ricerca Consente l'interrogazione a testo intero sui contenuti dei campi Consente di restituire il valore del campo nei risultati di ricerca
Analisi I contenuti vengono elaborati e inseriti in un indice. In genere viene sottoposto a un'analisi lessicale approfondita. Il valore viene memorizzato così com'è per la visualizzazione.
Può essere che…
…disponibile per la ricerca? Sì (spesso un prerequisito) N/D Non necessariamente (possono essere recuperabili senza essere ricercabili)
…recuperabile? Non necessariamente Non necessariamente N/D
...Filtrabile/Ordinabile/Sudd. in facet? Sì (in genere un prerequisito anche per questi) Non direttamente. Si tratta di attributi separati spesso basati su un campo indicizzabile. Non direttamente. Questi attributi si riferiscono al modo in cui il campo viene indicizzato e interrogato, non solo visualizzato.

In pratica, molti campi fondamentali per l'esperienza utente (come titoli, descrizioni e informazioni identificative) sono spesso impostati su indexable, searchable e retrievable.

Limitazioni

Le impostazioni dei campi presentano le seguenti limitazioni:

  • Puoi configurare fino a 50 campi come indicizzabili, ricercabili, recuperabili o con suddivisione dinamica in facet.
  • Per configurare un campo come suddivisione dinamica in facet, deve prima essere configurato come indicizzabile.
  • La modifica dell'impostazione di indicizzazione richiede la reindicizzazione dei dati, che può richiedere ore, soprattutto per i datastore di grandi dimensioni.

Se stai configurando i campi per un'app di ricerca di contenuti multimediali e vuoi informazioni dettagliate sui campi nello schema, consulta Informazioni su documenti multimediali e archivi di dati.

Aggiorna le impostazioni dei campi

Per aggiornare le impostazioni dei campi:

  1. Nella Google Cloud console, vai alla pagina AI Applications.

    Applicazioni di AI

  2. Fai clic sul nome dell'app da modificare.

  3. Fai clic su Dati.

  4. Fai clic sulla scheda Schema. Questa scheda mostra le impostazioni correnti dei campi.

    Se il datastore contiene dati di base del sito web o dati non strutturati senza metadati, non vedrai la scheda Schema.

  5. Fai clic su Modifica.

  6. Seleziona o deseleziona le impostazioni dei campi che devi aggiornare. Alcune impostazioni dei campi non sono supportate. Ad esempio, i campi numerici non possono essere impostati su Ricercabile.

  7. Fai clic su Salva per applicare le modifiche.

Se contrassegni un campo come ricercabile, puoi specificare un peso per indicarne l'importanza relativa nei risultati di ricerca. Nella maggior parte dei casi non è necessario specificare i pesi per i singoli campi perché i pesi predefiniti funzionano bene.

Tuttavia, la modifica dei pesi può essere necessaria in alcune situazioni, ad esempio:

  • Stai eseguendo la migrazione dei dati da una piattaforma di ricerca esistente che utilizza già campi ponderati.

  • Quando i pesi predefiniti non forniscono risultati di ricerca soddisfacenti. In particolare, questo può accadere quando hai molti campi ricercabili e alcuni sono notevolmente più importanti di altri.

    Forse il riepilogo è il campo più importante per le ricerche e quindi vuoi dare la priorità a questo testo.

    In alternativa, lo schema ha un campo contenente parole chiave molto pertinenti che sono ottimi predittori per i risultati di ricerca, ma, poiché questo campo è molto più breve di altri, la sua influenza è spesso oscurata da campi più lunghi. Aumentarne il peso garantisce che abbia l'impatto previsto.

Livelli di peso

I pesi sono suddivisi nei seguenti livelli:

Importanza del campo Spiegazione
Molto basso Un valore basso che il sistema prende comunque in considerazione quando combina i punteggi di tutti i campi. Se vuoi una ponderazione ancora inferiore, in modo che l'effetto sia trascurabile, non contrassegnare il campo come ricercabile.
Bassa Un peso inferiore a quello predefinito.
Predefinito Il peso standard per i campi ricercabili. Questo peso offre prestazioni ragionevolmente buone nella maggior parte dei casi.
Alta Un peso notevolmente superiore a quello predefinito.
Molto alto Un peso dominante. In genere, questa opzione viene riservata a un solo campo.

Aggiornamento dello schema e reindicizzazione

L'aggiunta di pesi ai campi ricercabili richiede un aggiornamento dello schema e la successiva reindicizzazione dei dati nel datastore. L'aggiornamento dello schema richiede ore e non esiste un indicatore affidabile per sapere quando l'indicizzazione è completata, quindi devi sovrastimare il tempo di indicizzazione.

Impostare i livelli di ponderazione sui campi

L'attività di impostazione dei livelli di ponderazione per i campi può essere noiosa perché devi apportare solo piccole modifiche e rivedere attentamente i risultati di ricerca per verificare la presenza di conseguenze indesiderate. Dopo ogni modifica, devi attendere il completamento della reindicizzazione prima di poter valutare l'impatto della modifica.

Puoi configurare la ponderazione dei campi di ricerca solo tramite l'API. Questa funzionalità non è disponibile nella console Google Cloud .

Per impostare i pesi, devi aggiornare lo schema per il datastore tramite il metodo projects.locations.dataStores.schemas.patch dell'API.

  1. Se non hai ancora lo schema, segui le istruzioni per ottenerlo in Visualizzare una definizione di schema.

  2. Segui le istruzioni per aggiornare lo schema in modo programmatico. Aggiungi pesi a uno o più campi ricercabili, come in questi esempi:

    "summary": {
       "type": "string",
       "searchable": true,
       "weight": "high"
     },
     "uri": {
       "type": "string",
       "searchable": true,
       "weight": "low"
     },
    

    In questo esempio, il campo summary è impostato su un peso superiore al normale e il campo uri su un peso inferiore. Se vuoi ripristinare il valore predefinito di un peso, impostalo su default.

    I valori consentiti per il parametro peso sono:

    • very_low
    • low
    • default
    • high
    • very_high
  3. Attendi il completamento della reindicizzazione e verifica il comportamento della ricerca.

Rendere disponibili i campi per la corrispondenza parziale e del prefisso (anteprima)

Per i campi di tipo string, puoi modificare lo schema per rendere i campi disponibili per la corrispondenza del prefisso o la corrispondenza parziale. Ciò ti consente di utilizzare STARTS_WITH o CONTAINS nelle espressioni di filtro.

Aggiornamento dello schema e reindicizzazione

Per rendere disponibili i campi per la corrispondenza parziale o con prefisso, è necessario aggiornare lo schema e reindicizzare successivamente i dati nel datastore. L'aggiornamento dello schema richiede ore e non esiste un indicatore affidabile per sapere quando l'indicizzazione è completata, quindi devi sovrastimare il tempo di indicizzazione.

Aggiornare lo schema per la corrispondenza parziale e del prefisso

Per specificare i campi come disponibili per la corrispondenza del prefisso o la corrispondenza parziale, devi aggiornare lo schema per il datastore tramite il metodo API projects.locations.dataStores.schemas.patch.

  1. Se non hai ancora lo schema, segui le istruzioni per ottenerlo in Visualizzare una definizione di schema.

  2. Segui le istruzioni per aggiornare lo schema in modo programmatico. Imposta i parametri corrispondenti su true nello schema, come in questi esempi:

    "zone": {
       "type": "string",
       "searchable": true,
       "prefixMatchable": true
     },
     "region": {
       "type": "string",
       "searchable": true,
       "partialMatchable": true
     },
     "model": {
       "type": "string",
       "searchable": true,
       "prefixMatchable": true,
       "partialMatchable": true
     },
    

    In questo esempio, il campo zone è impostato in modo da poter essere abbinato al prefisso. Fino a 12 caratteri, senza distinzione tra maiuscole e minuscole, possono essere utilizzati nell'espressione di filtro per trovare corrispondenze con il valore del campo. Il campo region è impostato in modo da essere parzialmente abbinabile.

  3. Attendi il completamento della reindicizzazione.

Dettagli sulla corrispondenza del prefisso

La corrispondenza del prefisso in Agent Search consente di filtrare i risultati in base al fatto che il valore di un campo inizi con una stringa specifica. Questa funzionalità è basata sull'operatore STARTS_WITH e richiede che il campo di testo di destinazione sia configurato come prefixMatchable nello schema.

Logica di normalizzazione e corrispondenza

Per ottimizzare il rendimento e garantire la coerenza, il sistema applica un processo di normalizzazione specifico sia al valore del campo (durante l'indicizzazione) sia alla stringa di query (durante la ricerca).

  1. Conversione in minuscolo: tutti i caratteri vengono convertiti in minuscolo. In questo modo, la corrispondenza non distingue tra maiuscole e minuscole.

  2. Troncamento a 12 caratteri: il sistema prende in considerazione solo i primi 12 caratteri della stringa. I caratteri oltre questo limite vengono ignorati ai fini della corrispondenza del prefisso.

Come funziona

Al momento dell'indicizzazione, per un campo contrassegnato come prefixMatchable, il sistema genera token di prefisso per i primi 12 caratteri. Per un valore come asia-south1-c, l'indice memorizza i token per a, as, asi, asia, asia- e così via, fino al 12° carattere (asia-south1-).

Al momento della query, anche la stringa fornita all'operatore STARTS_WITH viene convertita in minuscolo e troncata a 12 caratteri. La query viene quindi confrontata con i token del prefisso memorizzati.

Esempi

Gli esempi seguenti mostrano in che modo la normalizzazione a 12 caratteri influisce sui risultati di ricerca:

  • Corrispondenze generiche: STARTS_WITH("A") corrisponde a qualsiasi valore che inizia con "a" (senza distinzione tra maiuscole e minuscole), ad esempio asia, australia o africa.

  • Prefissi parziali: STARTS_WITH("asia-south") corrisponde sia a asia-south1-a sia a asia-southeast1-b perché entrambi iniziano con la stringa di 10 caratteri specificata.

  • Comportamento di troncamento: poiché vengono confrontati solo i primi 12 caratteri, STARTS_WITH("asia-south1-a") corrisponde a un valore del campo asia-south1-c. Ciò si verifica perché entrambe le stringhe vengono normalizzate con lo stesso prefisso di 12 caratteri: asia-south1-.

Dettagli sulla corrispondenza parziale

La corrispondenza parziale nella ricerca degli agenti consente di filtrare i risultati in base al fatto che il valore di un campo contenga parole o token specifici. Questa funzionalità è basata sull'operatore CONTAINS e richiede che il campo di testo di destinazione sia configurato come partialMatchable nello schema.

Logica di normalizzazione e tokenizzazione

La ricerca di agenti normalizza e tokenizza sia il valore del campo (durante l'indicizzazione) sia la stringa di query (durante la ricerca):

  • Conversione in minuscolo: Agent Search converte i caratteri in minuscolo. In questo modo, la corrispondenza non fa distinzione tra maiuscole e minuscole.

  • Tokenizzazione: la ricerca dell'agente suddivide la stringa in singoli token (parole) utilizzando spazi e altri caratteri come delimitatori.

    • Delimitatori standard: gli spazi e la punteggiatura comune fungono da delimitatori, tra cui trattini (-), barre (/), virgole (,), punti (.), asterischi (*), parentesi graffe ({ }), parentesi quadre ([ ]), parentesi tonde (( )) e apostrofi (').

    • Non delimitatori: la e commerciale (&) e il trattino basso (_) non fungono da delimitatori. Il sistema tratta i caratteri uniti da questi simboli come un unico token.

    • Delimitatore email (@): il simbolo @ funge da delimitatore speciale per aiutare a riconoscere gli indirizzi email. Il sistema genera token per i singoli componenti e per i moduli combinati. Ad esempio, suddivide support+tier1@example.com in support, tier1, example, com, support+tier1@example.com e support@example.com.

Come funziona

Al momento dell'indicizzazione, per un campo contrassegnato come partialMatchable, il sistema normalizza e tokenizza il valore del campo e memorizza i token risultanti nell'indice. Ad esempio, tokenizza un valore del campo 25-meter, outdoor, swimming pool in [25, meter, outdoor, swimming, pool].

Al momento della query, la stringa fornita all'operatore CONTAINS viene sottoposta allo stesso processo di normalizzazione e tokenizzazione. Il motore di ricerca verifica quindi che tutti i token della query risultanti corrispondano ai token archiviati per il campo. L'ordine dei token non ha alcun effetto.

Esempi

I seguenti esempi mostrano in che modo la tokenizzazione influisce sui risultati della corrispondenza parziale:

  • Corrispondenza di base dei token: se il valore del campo è 25-meter, outdoor, swimming pool, viene trovata una corrispondenza con un filtro di CONTAINS("Outdoor pool"). Il sistema tokenizza la query in [outdoor, pool], entrambi presenti nei token del campo.

  • Indipendenza dell'ordine: un filtro di CONTAINS("pool outdoor") corrisponde anche al valore del campo 25-meter, outdoor, swimming pool perché il sistema verifica la presenza di ogni token indipendentemente dal loro ordine.

  • Corrispondenza degli indirizzi email: se un campo memorizza l'email support+tier1@example.com, i filtri come CONTAINS("support"), CONTAINS("example.com") o CONTAINS("support@example.com") corrispondono correttamente grazie alla tokenizzazione speciale del simbolo @.

Passaggi successivi