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 abbia la ricerca di base del sito web o l'indicizzazione avanzata del sito web:

Espressioni di filtro per la ricerca di base sul sito web

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

Sintassi per la ricerca di base sul sito web

La seguente forma Backus-Naur estesa riassume la sintassi dell'espressione di filtro per la creazione di un filtro di ricerca del sito web quando è disponibile la ricerca di base del sito 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) Consente di limitare i risultati di ricerca ai documenti di un paese specifico. Per un elenco dei valori supportati, consulta Valori della raccolta 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 nell'intervallo di questi parametri.

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

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

  • lr (stringa) Consente di limitare 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 alle licenze. Per i valori supportati, consulta Parametri di query (diritti).

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

Esempi per la ricerca di base sul sito web

Ecco alcuni esempi di filtri per la ricerca di base sul sito web:

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

    Filtri per documenti: (1) provenienti dagli Stati Uniti e (2) nel dominiohttps://example.com/example_domain.

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

    Filtri per 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 delle espressioni filtro con l'indicizzazione avanzata dei siti web (se questa è attivata).

Campi disponibili per l'indicizzazione avanzata dei siti web

Quando hai l'indicizzazione avanzata del sito web, puoi filtrare la ricerca sul sito web 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 tuo datastore per rendere i campi cercabili, recuperabili e indicizzabili. Per ulteriori 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 Backus-Naur Form esteso riassume la sintassi dell'espressione di filtro per la creazione di un filtro di ricerca del sito web quando hai l'indicizzazione avanzata del sito 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 applichi un filtro per i nomi dei tag meta e dei nomi degli 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 nel dominio https://example.com/example_domain. Ad esempio, https://example.com/example_domain/index.html.

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

    Filtra i documenti che si trovano in qualsiasi dominio corrispondente ahttps://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 di URL. Ad esempio, https://altostrat.com/subdomain/pages/title_page, https://cymbalgroup.com/subdomain/pages/title_page o https://altostrat.com/subdomain/pages/INFO.

Di seguito sono riportati alcuni esempi di filtri per il nome dell'attributo meta o 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\")"}

    Filtri per 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 dei nomi degli attributi PageMap utilizzati per l'indicizzazione, consulta Caso d'uso di esempio per i tag meta e Caso d'uso di esempio per le mappe di pagine.

Per filtrare una ricerca sul sito web:

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

    1. Nella console Google Cloud, vai alla pagina Agent Builder.

      Vai ad App

    2. Nella pagina App, trova il nome della tua app e recupera l'ID dall'app la colonna ID.

  2. Per filtrare una ricerca sul 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"
    }'