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 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 de elaborar los filtros varía según si activaste la indexación avanzada de sitios web. Consulta una de las siguientes secciones, según si tienes una búsqueda básica de sitios web o una 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 la expresión del 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 de sitios web

El siguiente esquema Backus-Naur extendido resume la sintaxis de la expresión de filtro para construir un filtro de búsqueda de sitios web cuando tienes una búsqueda básica de sitios web. Las comillas dobles después del 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 de sitios web

Estos son los campos disponibles para filtrar la búsqueda de sitios web cuando tienes una búsqueda básica de sitios 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 recopilació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 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 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 especificado. Para obtener una lista de los idiomas admitidos, consulta Parámetros de consulta (lr).

  • rights (cadena) Filtra los resultados de la búsqueda según las licencias. Para conocer los valores compatibles, 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úsqueda básica 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 cumplan con las siguientes condiciones: (1) que sean de EE.UU. y (2) que 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) en inglés.

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

    Filtros para documentos que son de dominio público

Cómo filtrar expresiones con la indexación avanzada de sitios web

En esta sección, se explica el comportamiento de la expresión del 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 la indexación avanzada de sitios web, puedes filtrar la búsqueda de sitios web con estos campos:

  • siteSearch (cadena): Es un patrón de URL para las páginas web en las que debe buscar tu consulta.
  • Nombres de etiquetas meta y nombres de atributos de PageMap: Datos estructurados de tus páginas web que se pueden agregar al esquema de tu almacén de datos para que los campos puedan buscarse, recuperarse y indexarse. Para obtener más información, consulta Cómo usar datos estructurados para la indexación avanzada de sitios web.

Sintaxis para la indexación avanzada de sitios web

El siguiente formato Backus-Naur extendido resume la sintaxis de la expresión del filtro para construir un filtro de búsqueda de sitios web cuando tienes indexación avanzada de sitios web. Las comillas dobles después del 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 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\""}

    Filtros para 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.

Estos son algunos ejemplos de meta o filtrado de nombres de atributos de PageMap:

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

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

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

    Filtros para 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 de etiquetas meta y Ejemplo de caso de uso de 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 Agent Builder.

      Ve a Apps.

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

  2. Para filtrar una búsqueda de sitios 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"
    }'