Filtrare la ricerca nel sito web

Questa pagina spiega come filtrare le query di ricerca per un'app di ricerca con dati del sito web.

Prima di iniziare

Assicurati di aver creato un'app e un datastore e di aver importato i dati del sito web nel datastore. Per ulteriori informazioni, vedi Creare un'app di ricerca.

Informazioni sulle espressioni di filtro

Utilizza le espressioni di filtro per creare i filtri di ricerca del tuo sito web. Il modo in cui costruisci i filtri varia a seconda che tu abbia attivato l'indicizzazione avanzata dei siti web. Consulta una delle seguenti sezioni, a seconda che tu disponga della ricerca di base sul sito web o dell'indicizzazione avanzata dei siti web:

Espressioni di filtro per la ricerca di base su sito web

Questa sezione spiega il comportamento delle espressioni di filtro con la ricerca di base sul sito web (l'indicizzazione avanzata del sito web è disattivata).

Sintassi per la ricerca di base su sito web

Il seguente Extended Backus–Naur form riassume la sintassi dell'espressione di filtro per creare un filtro di ricerca sui siti web quando hai la ricerca di base sui siti web. Le virgolette doppie dopo i due punti in un filtro vengono applicate rigorosamente.

    # A single expression or multiple expressions that are joined by "AND".
  filter = expression, { "AND", expression };
  expression =
    # A simple expression applying to a text url string.
    | filter_key, ":", \"text_value\"
  filter_key = (cr | highRange | lowRange | fileType | lr | rights | siteSearch);
  text_value = string value to filter on;

Campi disponibili per la ricerca di base sul sito web

Di seguito sono riportati i campi disponibili per filtrare la ricerca sul sito web quando hai la ricerca di base sul sito web:

  • cr (stringa) Limita i risultati di ricerca ai documenti di un paese specifico. Per un elenco dei valori supportati, consulta Valori della raccolta di paesi.

  • highRange (stringa) Specifica il limite superiore dell'intervallo di ricerca. Se un documento contiene un numero, questo deve essere uguale o inferiore al valore di highRange affinché il documento venga incluso nella risposta. Specifica sia highRange che lowRange per creare una query di ricerca all'interno dell'intervallo di questi parametri.

  • lowRange (stringa) Specifica il limite inferiore dell'intervallo di ricerca. Se un documento contiene un numero, questo deve essere pari o superiore al valore di lowRange affinché il documento venga incluso nella risposta. Specifica sia lowRange che highRange per creare una query di ricerca all'interno dell'intervallo di questi parametri.

  • fileType (stringa) Limita i risultati di ricerca ai documenti con un'estensione specifica. Per un elenco dei tipi di file supportati, consulta Tipi di file indicizzabili da Google.

  • lr (stringa) Limita i risultati di ricerca ai documenti scritti in una lingua specificata. Per un elenco delle lingue supportate, consulta Parametri di query (lr).

  • rights (stringa) Filtra i risultati di ricerca in base alla licenza. Per i valori supportati, consulta la sezione Parametri di query (diritti).

  • siteSearch (stringa) Specifica un pattern URL per le pagine web in cui deve essere eseguita la ricerca della query.

Esempi per la ricerca di base su sito web

Ecco alcuni esempi di filtri per la ricerca di base di siti web:

  • {"filter": "cr:\"countryUS\" AND siteSearch:\"https://example.com/example_domain\""}

    Filtri per i documenti che: (1) provengono dagli Stati Uniti e (2) si trovano nel dominio https://example.com/example_domain.

  • {"filter": "fileType:\".pdf\" AND lr:\"lang_en\""}

    Filtri per i documenti che sono: (1) file PDF e (2) in inglese.

  • {"filter": "rights:\"cc_publicdomain\""}

    Filtri per i documenti di dominio pubblico.

Filtrare le espressioni con l'indicizzazione avanzata dei siti web

Questa sezione spiega il comportamento dell'espressione filtro con l'indicizzazione avanzata dei siti web (l'indicizzazione avanzata dei siti web è attivata).

Campi disponibili per l'indicizzazione avanzata dei siti web

Quando hai l'indicizzazione avanzata del sito web, puoi filtrare la ricerca sul sito utilizzando questi campi:

  • siteSearch (stringa): un pattern URL per le pagine web in cui deve essere eseguita la ricerca della query.
  • Nomi dei tag meta e nomi degli attributi PageMap: dati strutturati delle tue pagine web che possono essere aggiunti allo schema del datastore per rendere i campi ricercabili, recuperabili e indicizzabili. Per maggiori informazioni, consulta la pagina Utilizzare i dati strutturati per l'indicizzazione avanzata dei siti web.

Sintassi per l'indicizzazione avanzata dei siti web

Il seguente Extended Backus–Naur form riassume la sintassi dell'espressione di filtro per creare un filtro di ricerca del sito web quando hai l'indicizzazione avanzata dei siti web. Le virgolette doppie dopo i due punti in un filtro vengono applicate rigorosamente.

Quando filtri per siteSearch, la sintassi EBNF è:

    # A single expression or multiple expressions that are joined by "OR".
  filter = expression, { "OR", expression };
    # Expressions can be prefixed with "-" or "NOT" to express a negation.
  expression = [ "-" | "NOT " ],
    # A simple expression applying to a text url string.
    | filter_key, ":", \"url_string\"
  filter_key = siteSearch;
  url_string = double quoted string representing a URL;

Quando filtri per nomi di tag meta e nomi di attributi PageMap, la sintassi EBNF è:

    # A single expression or multiple expressions that are joined by "OR".
  filter = expression, { "OR", expression };
    # Expressions can be prefixed with "-" or "NOT" to express a negation.
  expression = [ "-" | "NOT " ],
   # Function "ANY" returns true if the field exactly matches any of the literals.
    | text_field, ":", "ANY", "(", literal, { ",", literal }, ")"
  literal = double quoted string;
  # text_field corresponds to the meta tag or PageMap Attribute name, for example, category
  text_field = text field;

Esempi per l'indicizzazione avanzata dei siti web

Ecco alcuni esempi di filtri per l'indicizzazione avanzata dei siti web con siteSearch:

  • {"filter": "siteSearch:\"https://example.com/example_domain\""}

    Filtri per i documenti che si trovano nel dominio https://example.com/example_domain. Ad esempio, https://example.com/example_domain/index.html.

  • {"filter": "siteSearch:\"https://example.com/subdomains/*\""}

    Filtri per i documenti che si trovano in uno qualsiasi dei domini corrispondenti a https://example.com/subdomains/*. Ad esempio, https://example.com/subdomains/example_subdomain_page.

  • {"filter": "siteSearch:\"https://altostrat.com/subdomain/pages/*\" OR siteSearch:\"http://cymbalgroup.com/pages/*\""}

    Filtri per i documenti che si trovano in qualsiasi dominio corrispondente al primo o al secondo pattern URL. Ad esempio, https://altostrat.com/subdomain/pages/title_page, https://cymbalgroup.com/subdomain/pages/title_page o https://altostrat.com/subdomain/pages/INFO.

Ecco alcuni esempi di filtri per meta o per nome attributo PageMap:

  • {"filter": "product: ANY(\"networking\",\"compute\")"}

    Filtri per i documenti che contengono il tag meta o l'attributo PageMap denominato product, con il valore networking o compute.

  • {"filter": "NOT product: ANY(\"storage\")"}

    Filtra i documenti che non contengono il tag meta o il nome dell'attributo PageMap product con il valore storage.

Per ulteriori informazioni sui nomi dei tag meta e sui nomi degli attributi PageMap utilizzati per l'indicizzazione, vedi Esempio di caso d'uso per i tag meta e Esempio di caso d'uso per PageMap.

Per filtrare la ricerca di un sito web:

  1. Trova l'ID app. Se hai già l'ID app, vai al passaggio successivo.

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

      Vai ad App

    2. Nella pagina App, trova il nome della tua app e recupera il relativo ID dalla colonna ID.

  2. Per filtrare la ricerca di un sito web, utilizza il campo filter con il metodo engines.servingConfigs.search.

    curl -X POST -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json" \
    "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search:search" \
    -d '{
     "servingConfig": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search",
    "query": "QUERY",
    "filter": "FILTER"
    }'
    

    Sostituisci quanto segue: