Cómo filtrar la búsqueda de sitios web

En esta página, se explica cómo filtrar las búsquedas de una app de búsqueda con datos de sitios web.

Antes de comenzar

Asegúrate de haber creado una app y un almacén de datos, y de haber transferido los datos del sitio web a tu almacén de datos. Para obtener más información, consulta Cómo crear una app de búsqueda.

Acerca de las expresiones de filtro

Usa expresiones de filtro para crear los filtros de búsqueda de tu sitio web. La forma en que construyes tus filtros varía según si activaste la indexación avanzada de sitios web. Consulta una de las siguientes secciones, según si tienes la búsqueda básica en el sitio web o la indexación avanzada de sitios web:

Expresiones de filtro para la búsqueda básica de sitios web

En esta sección, se explica el comportamiento de las expresiones de filtro con la búsqueda básica de sitios web (la indexación avanzada de sitios web está desactivada).

Sintaxis para la búsqueda básica en sitios web

El siguiente Formulario de Backus-Naur extendido resume la sintaxis de las expresiones de filtro para crear un filtro de búsqueda de sitios web cuando tienes una búsqueda básica de sitios web. Las comillas dobles después de los dos puntos en un filtro se aplican de forma estricta.

    # 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;

Campos disponibles para la búsqueda básica en el sitio web

Estos son los campos disponibles para filtrar la búsqueda en tu sitio web cuando tienes la búsqueda básica en el sitio web:

  • cr (cadena) Restringe los resultados de la búsqueda a los documentos de un país específico. Para obtener una lista de los valores admitidos, consulta Valores de la colección de países.

  • highRange (cadena) Especifica el límite superior del rango de búsqueda. Si un documento contiene un número, este debe ser igual o inferior al valor de highRange para que el documento se incluya en la respuesta. Especifica highRange y lowRange para crear una búsqueda dentro del rango de estos parámetros.

  • lowRange (cadena) Especifica el límite inferior del rango de búsqueda. Si un documento contiene un número, este debe ser igual o superior al valor de lowRange para que el documento se incluya en la respuesta. Especifica lowRange y highRange para crear una búsqueda dentro del rango de estos parámetros.

  • fileType (cadena): Restringe los resultados de la búsqueda a los documentos con una extensión especificada. Para obtener una lista de los tipos de archivo admitidos, consulta Tipos de archivo que Google puede indexar.

  • lr (cadena): Restringe los resultados de la búsqueda a los documentos escritos en un idioma específico. Para obtener una lista de los idiomas admitidos, consulta Parámetros de búsqueda (lr).

  • rights (cadena) Filtra los resultados de la búsqueda según la licencia. Para conocer los valores admitidos, consulta Parámetros de consulta (derechos).

  • siteSearch (cadena) Especifica un patrón de URL para las páginas web en las que debe buscar tu consulta.

Ejemplos de búsquedas básicas en sitios web

Estos son algunos ejemplos de filtros para la búsqueda básica de sitios web:

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

    Filtra los documentos que cumplen con las siguientes condiciones: (1) Son de EE.UU. y (2) están en el dominio https://example.com/example_domain.

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

    Filtros para documentos que son (1) archivos PDF y (2) están en inglés

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

    Filtros para documentos que son de dominio público

Expresiones de filtro con indexación avanzada de sitios web

En esta sección, se explica el comportamiento de las expresiones de filtro con la indexación avanzada de sitios web (la indexación avanzada de sitios web está activada).

Campos disponibles para la indexación avanzada de sitios web

Cuando tienes una indexación avanzada del sitio web, puedes filtrar la búsqueda en tu sitio web con estos campos:

  • siteSearch (cadena): Es un patrón de URL para las páginas web en las que tu búsqueda debe realizarse.
  • Nombres de etiquetas de meta y nombres de atributos de PageMap: Son datos estructurados de tus páginas web que se pueden agregar al esquema de tu almacén de datos para que los campos se puedan buscar, recuperar y, también, indexar. Para obtener más información, consulta Usa datos estructurados para la indexación avanzada de sitios web.

Sintaxis para la indexación avanzada de sitios web

El siguiente Formulario de Backus-Naur extendido resume la sintaxis de las expresiones de filtro para crear un filtro de búsqueda de sitios web cuando tienes una indexación avanzada de sitios web. Las comillas dobles después de los dos puntos en un filtro se aplican de forma estricta.

Cuando se filtra por siteSearch, la sintaxis de EBNF es la siguiente:

    # 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;

Cuando se filtran nombres de etiquetas meta y nombres de atributos de PageMap, la sintaxis de EBNF es la siguiente:

    # 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;

Ejemplos de indexación avanzada de sitios web

Estos son algunos ejemplos de filtros para la indexación avanzada de sitios web con siteSearch:

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

    Filtra los documentos que se encuentran en el dominio https://example.com/example_domain. Por ejemplo, https://example.com/example_domain/index.html

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

    Filtra los documentos que se encuentran en cualquier dominio que coincida con https://example.com/subdomains/*. Por ejemplo, https://example.com/subdomains/example_subdomain_page

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

    Filtra los documentos que se encuentran en cualquier dominio que coincida con el primer o segundo patrón de URL. Por ejemplo, https://altostrat.com/subdomain/pages/title_page, https://cymbalgroup.com/subdomain/pages/title_page o https://altostrat.com/subdomain/pages/INFO.

A continuación, se incluyen algunos ejemplos de filtrado por meta o nombre de atributo de PageMap:

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

    Filtra los documentos que contienen la etiqueta meta o el atributo PageMap llamado product, con su valor como networking o compute.

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

    Filtra los documentos que no contienen la etiqueta meta o el nombre del atributo PageMap product con su valor como storage.

Para obtener más información sobre los nombres de etiquetas meta y los nombres de atributos de PageMap que se usan para la indexación, consulta Ejemplo de caso de uso para etiquetas meta y Ejemplo de caso de uso para PageMaps.

Para filtrar una búsqueda de sitios web, sigue estos pasos:

  1. Busca el ID de tu app. Si ya tienes el ID de tu app, ve al siguiente paso.

    1. En la consola de Google Cloud , ve a la página AI Applications.

      Ve a Apps.

    2. En la página Apps, busca el nombre de tu app y obtén su ID en la columna ID.

  2. Para filtrar una búsqueda en un sitio web, usa el campo filter con el método 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"
    }'
    

    Reemplaza lo siguiente: