Filtrar la búsqueda en un sitio web

En esta página se explica cómo filtrar las consultas de búsqueda de una aplicación de búsqueda con datos de sitios web.

Antes de empezar

Asegúrate de haber creado una aplicación y un almacén de datos, y de haber insertado datos de sitio web en tu almacén de datos. Para obtener más información, consulta el artículo Crear una aplicación 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 crear los filtros varía en función de si has activado la indexación avanzada de sitios web. Consulta una de las siguientes secciones, en función de 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 en sitios web

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

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

La siguiente forma de Backus-Naur extendida resume la sintaxis de las expresiones de filtro para crear un filtro de búsqueda de sitio web cuando tiene la búsqueda básica de sitio web. Las comillas dobles después de los dos puntos de un filtro son obligatorias.

    # 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 que puede usar para filtrar la búsqueda en su sitio web cuando tiene la búsqueda básica en el sitio web:

  • cr (cadena): restringe los resultados de búsqueda a documentos de un país concreto. Para ver una lista de los valores admitidos, consulte Valores de la colección de países.

  • highRange (cadena): especifica el límite superior del intervalo 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. Especifique highRange y lowRange para crear una consulta de búsqueda dentro del intervalo de estos parámetros.

  • lowRange (cadena) Especifica el límite inferior del intervalo 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. Especifique lowRange y highRange para crear una consulta de búsqueda dentro del intervalo de estos parámetros.

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

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

  • rights (cadena): filtra los resultados de búsqueda en función de la licencia. Para ver 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úsqueda básica en sitios web

Estos son algunos ejemplos de filtros para búsquedas básicas en sitios web:

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

    Filtra los documentos que sean de Estados Unidos y que estén en el dominio https://example.com/example_domain.

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

    Filtra los documentos que sean archivos PDF y estén en inglés.

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

    Filtros para documentos que son de dominio público.

Filtrar expresiones con la 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

Si tienes la indexación avanzada de sitios web, puedes filtrar la búsqueda en tu sitio web con estos campos:

  • siteSearch (cadena): patrón de URL de las páginas web en las que debe buscar tu consulta.
  • Nombres de etiquetas meta y nombres de atributos de PageMap: datos estructurados de sus páginas web que se pueden añadir al esquema de su almacén de datos para que los campos se puedan buscar, recuperar e indexar. Para obtener más información, consulta Usar datos estructurados para la indexación avanzada de sitios web.

Sintaxis de la indexación avanzada de sitios web

La siguiente notación de Backus-Naur ampliada resume la sintaxis de las expresiones de filtro para crear un filtro de búsqueda de sitios web cuando se tiene la indexación avanzada de sitios web. Las comillas dobles después de los dos puntos de un filtro son obligatorias.

Para filtrar 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 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

Aquí tienes 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 están 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 los dominios que coincidan 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 el 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 muestran algunos ejemplos de filtros por nombre de atributo meta o PageMap:

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

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

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

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

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

Para filtrar una búsqueda en un sitio web, sigue estos pasos:

  1. Busca el ID de tu aplicación. Si ya tienes el ID de tu aplicación, ve al siguiente paso.

    1. En la Google Cloud consola, ve a la página Aplicaciones de IA.

      Ir a Aplicaciones

    2. En la página Aplicaciones, busca el nombre de tu aplicación y consulta su ID en la columna ID.

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

    Haz los cambios siguientes: