Establece los parámetros de configuración de los campos

En esta página, se muestra cómo configurar los campos del esquema para configurar una app para datos estructurados, para datos no estructurados con metadatos o para datos de sitios web con atributos estructurados personalizados.

La configuración de los campos ayuda a determinar cómo la Búsqueda con agente usa los campos en sus resultados. Puedes usar la pestaña Esquema en la consola deGoogle Cloud para configurar los parámetros de configuración de los campos.

La configuración de los campos solo está disponible para las apps con almacenes de datos que contienen datos estructurados o no estructurados con metadatos.

Configuración de campo

Los siguientes parámetros de configuración de campos están disponibles para muchos tipos de campos en tus datos de búsqueda o recomendaciones, pero no para todos los tipos de datos. Un esquema contiene varios parámetros de configuración de campos individuales, y la siguiente tabla contiene parámetros de configuración que se pueden aplicar a un campo dentro de un esquema. Se recomienda usar datos estructurados para los siguientes parámetros de configuración de campos:

Configuración Definición Objetivo Ejemplo de caso de uso
Indexable

Configurar los campos como indexables permite realizar operaciones como filtrado, potenciación y facetas en campos estructurados dentro de un documento.

Los campos de tipo Object no se pueden establecer en Indexable.

Marcar un campo como Indexable permite búsquedas más rápidas.

Ten en cuenta que marcar un campo como Indexable aumenta el tamaño del índice de búsqueda y puede ralentizar la indexación.

En un almacén de datos de hoteles, puedes establecer un campo, como hotel_chain, como indexable. Esto te permite aplicar operaciones de clasificación, filtrado y refuerzo en hotel_chain. Por ejemplo, puedes aplicar un filtro para que la búsqueda muestre solo los resultados que contengan la cadena hotelera filtrada.
Se puede buscar

Los campos que tienen más probabilidades de estar relacionados con las búsquedas se designan como Searchable. Un campo puede ser apto para la búsqueda sin ser indexable ni recuperable.

Solo los campos con valores de texto se pueden marcar como aptos para la búsqueda. Por lo tanto, un campo de precio numérico puede ser indexable (para el filtrado o la segmentación), pero no se puede buscar como texto completo.

Si estableces un campo como Se puede buscar, se mejora la recuperación de ese campo en las búsquedas, lo que permite a los usuarios encontrar contenido, como páginas web, buscando el texto dentro de estos campos. Marcar un campo como apto para búsquedas permite aplicar la clasificación. Por lo tanto, marcar una cantidad excesiva de campos como aptos para la búsqueda puede afectar negativamente la precisión de la búsqueda, ya que satura demasiado el algoritmo de clasificación y muestra demasiados resultados. Esto puede generar resultados de búsqueda irrelevantes.

Puedes aplicar una ponderación relativa a los campos aptos para la búsqueda. Sin embargo, debido a los valores predeterminados sólidos, esto rara vez es necesario. Consulta Weight searchable fields a continuación.

El sistema de tickets de asistencia de un proveedor de servicios de Internet almacena cada ticket como un documento estructurado. Si estos documentos contienen campos de texto aptos para búsquedas, como issue_description o resolution_notes, un agente de asistencia puede realizar una consulta relacionada con el contenido de esos campos, como cómo solucionar la lentitud de la velocidad de Internet después de restablecer el módem. Luego, el sistema mostraría los documentos que contienen cualquiera de esos términos de búsqueda, incluidos módem, Internet y velocidad, en uno o ambos campos issue_description o resolution_notes.

Coincidencia de prefijo
(vista previa)

Permite que los campos de texto coincidan con prefijos usando el operador STARTS_WITH en las expresiones de filtro. Solo los campos de tipo String o String Array se pueden configurar como aptos para la coincidencia de prefijos.

Para obtener más información, consulta Cómo hacer que los campos estén disponibles para la coincidencia parcial y de prefijo a continuación.

Si configuras un campo como apto para la concordancia de prefijos, el motor de búsqueda podrá hacer coincidir cadenas de búsqueda que sean prefijos del valor del campo. Esto es particularmente útil para hacer coincidir identificadores, rutas o códigos jerárquicos en los que se conoce el comienzo de la cadena. La coincidencia de prefijos se limita a los primeros 12 caracteres del valor del campo normalizado y aumenta el tamaño del índice de búsqueda. No puedes establecer más de 10 campos como aptos para la coincidencia de prefijo.

Tienes un campo, ticket_id, que usa un formato como <country-code><city-code><number>. Entre los ejemplos, se incluyen UKLON100, UKMAN100, UKMAN101 y USNY200. Para encontrar todos los tickets de Mánchester (Reino Unido), puedes establecer el campo ticket_id como apto para la coincidencia de prefijos y, luego, usar el filtro ticket_id: STARTS_WITH("UKMAN"), que devuelve UKMAN100 y UKMAN101.

Coincidencia parcial
(vista previa)

Permite la coincidencia parcial de cadenas en campos de texto con el operador CONTAINS en expresiones de filtro. Solo los campos de tipo String o String Array se pueden establecer como parcialmente coincidentes.

Para obtener más información, consulta Cómo hacer que los campos estén disponibles para la coincidencia parcial y de prefijo a continuación.

Establecer un campo como parcialmente coincidente habilita la coincidencia basada en tokens dentro de un campo, lo que permite a los usuarios encontrar contenido cuando solo se conoce una parte del valor del campo. El motor de búsqueda compara los tokens de la búsqueda con los tokens del valor del campo, independientemente de su orden. Ten en cuenta que marcar un campo como parcialmente coincidente aumenta el tamaño del índice de búsqueda. No puedes establecer más de 10 campos como parcialmente coincidentes.

Quieres filtrar las regiones de Europa. Los nombres de region incluyen Central Europe y Eastern Europe. Si tu filtro es region: ANY("Europe"), no obtendrás ninguna coincidencia. Sin embargo, si el campo region se configura como parcialmente coincidente, puedes filtrar con region: CONTAINS("Europe") y obtener coincidencias para Central Europe y Eastern Europe.

Faceta dinámica Proporciona filtros contextuales para segmentar mejor las búsquedas de los usuarios. Establecer un campo como Dynamic Facetable permite que el sistema genere automáticamente filtros interactivos (facetas) basados en los valores únicos presentes en el campo. Si configuras un campo como Dynamic facetable, los usuarios podrán definir mejor los resultados de la búsqueda de forma dinámica seleccionando categorías o atributos derivados directamente de los datos que se hayan incorporado, sin tener que predefinir manualmente todas las opciones de filtro posibles. Esto permite que el usuario limite su búsqueda a contenido web muy específico.
Usa Dynamic Facetable con Searchable para obtener mejores resultados, lo que mejora tanto la recuperación de tu búsqueda como la calidad de las facetas que se ofrecen al usuario.
Las páginas de una base de conocimiento corporativa interna, como las políticas de RR.HH., se incorporan con datos como department, document_type o last_modified_date. Si estos campos están etiquetados como dynamic facetable, una búsqueda de empleados para un término como reembolso de gastos genera de forma dinámica filtros interactivos basados en los resultados relevantes encontrados. En ese caso, la interfaz web podría mostrar facetas para Departamento: Finanzas, Viajes, Tipo de documento: Política, Preguntas frecuentes o Fecha de última modificación: Este trimestre, Año pasado.
Recuperable Cuando una búsqueda coincide con contenido, el motor de búsqueda puede extraer los valores de los campos recuperables para mostrarlos o usarlos en la aplicación, lo que significa que la información del documento original se muestra como parte de los resultados de la búsqueda. Los campos clave (identificadores únicos para los documentos) se configuran como recuperables. Los campos recuperables proporcionan contexto de búsqueda, ya que distinguen los campos cuyos valores se pueden mostrar de aquellos que solo se deben usar en la lógica de búsqueda, pero cuyos valores sin procesar no están destinados a mostrarse al usuario final. En el caso de una búsqueda de productos en un sitio del comercio, product_id, name, price y image_url son campos típicos que querrás establecer como recuperables. Por otro lado, el internal_tracking_code se puede indexar y filtrar solo para fines administrativos, pero no se puede recuperar en los resultados de la búsqueda pública.
Completables Permite que el contenido de un campo se use para sugerencias de búsquedas. Para obtener más información, consulta Configura la función de autocompletar.

Este parámetro de configuración permite que se usen los valores dentro de ese campo para proporcionar sugerencias de búsqueda en tiempo real a medida que los usuarios escriben. Esta función ayuda a guiar a los usuarios hacia el contenido pertinente y acelera el proceso de búsqueda. Ciertos factores, como el uso del filtrado de lenguaje natural, pueden afectar este rendimiento.

Si el campo completable está configurado para product_name, brand y category, cuando el usuario escribe Tecnología, las sugerencias de autocompletar pueden mostrar lo siguiente:
  • TechCo (del campo brand)
  • TechCo UltraBook X1 (del campo product_name)
  • Tecnología GameMaster Pro (otro producto del campo category)
Se puede filtrar Permite que las recomendaciones usen un campo para filtrar los resultados recomendados y determinar qué resultados de la búsqueda ven los usuarios. Para obtener información sobre cómo filtrar recomendaciones, consulta Cómo filtrar recomendaciones. Establecer un campo en Filterable ayuda a personalizar las recomendaciones para los usuarios. Ten en cuenta que se aplican límites de filtrado. Un parámetro de configuración del filtro por idioma y drama podría verse así: language_code: ANY("en", "fr") OR categories: ANY("drama").

Diferencias entre los parámetros de configuración de uso frecuente

Existen diferencias clave entre la configuración de los campos indexables, en los que se pueden realizar búsquedas y que se pueden recuperar. En la tabla, se resumen estas diferencias.

Función Indexable Se puede buscar Recuperable
Rol principal Hace que el contenido del campo esté disponible para el motor de búsqueda. Permite realizar consultas de texto completo en el contenido del campo Permite que el valor del campo se muestre en los resultados de la búsqueda.
Análisis El contenido se procesa y se coloca en un índice. Por lo general, se somete a un análisis léxico exhaustivo. El valor se almacena tal como está para su visualización.
¿Puede ser...?
…¿Se puede buscar? Sí (a menudo, un requisito previo) N/A No necesariamente (se puede recuperar sin que se pueda buscar)
…¿Recuperable? No necesariamente No necesariamente N/A
…¿Se puede filtrar, ordenar y categorizar en facetas? Sí (generalmente, también es un requisito previo para estos) No directamente, ya que son atributos separados que, a menudo, se basan en un campo indexable. No directamente. Estos atributos se relacionan con la forma en que se indexa y se consulta el campo, no solo con la forma en que se muestra.

En la práctica, muchos campos que son fundamentales para la experiencia del usuario (como los títulos, las descripciones y la información de identificación) suelen establecerse como indexable, searchable y retrievable.

Limitaciones

La configuración de los campos tiene las siguientes limitaciones:

  • Puedes configurar hasta 50 campos como indexables, aptos para la búsqueda, recuperables o categorizables dinámicamente en facetas.
  • Para configurar un campo como facetable dinámico, primero se debe configurar como indexable.
  • Para cambiar el parámetro de configuración de indexación, es necesario volver a indexar los datos, lo que puede tardar horas, en especial en el caso de los almacenes de datos grandes.

Si configuras campos para una app de búsqueda de contenido multimedia y deseas obtener información detallada sobre los campos del esquema, consulta Acerca de los documentos multimedia y los almacenes de datos.

Actualiza la configuración de los campos

Para actualizar la configuración de los campos, sigue estos pasos:

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

    Aplicaciones basadas en IA

  2. Haz clic en el nombre de la app que deseas editar.

  3. Haz clic en Datos (Data).

  4. Haz clic en la pestaña Esquema. En esta pestaña, se muestra la configuración actual de los campos.

    No verás la pestaña Esquema si tu almacén de datos contiene datos básicos de sitios web o datos no estructurados sin metadatos.

  5. Haz clic en Editar.

  6. Selecciona o borra la configuración de los campos que necesites actualizar. No se admiten algunos parámetros de configuración de campos. Por ejemplo, los campos numéricos no se pueden establecer como Searchable.

  7. Haz clic en Guardar para aplicar los cambios.

Si marcas un campo como apto para la búsqueda, puedes especificar un peso para indicar su importancia relativa en los resultados de la búsqueda. En la mayoría de los casos, no es necesario que especifiques pesos para los campos individuales, ya que los pesos predeterminados funcionan bien.

Sin embargo, ajustar los pesos puede ser necesario en algunas situaciones, por ejemplo:

  • Estás migrando datos desde una plataforma de búsqueda existente que ya usa campos ponderados.

  • Cuando los pesos predeterminados no proporcionan resultados de la búsqueda satisfactorios Específicamente, esto puede ocurrir cuando tienes muchos campos de búsqueda y algunos son notablemente más importantes que otros.

    Quizás el resumen sea el campo más importante para las búsquedas, por lo que querrás priorizar ese texto.

    O bien, el esquema tiene un campo que contiene palabras clave muy relevantes que son excelentes predictores para los resultados de la búsqueda, pero, debido a que este campo es mucho más corto que otros, su influencia a menudo se ve eclipsada por los campos más largos. Aumentar su peso garantiza que tenga el impacto previsto.

Niveles de peso

Los pesos se agrupan en los siguientes niveles:

Importancia del campo Explicación
Muy bajo Es un valor bajo que el sistema sigue teniendo en cuenta cuando combina las puntuaciones de todos los campos. Si deseas que el peso sea aún menor para que el efecto sea insignificante, no marques el campo como apto para búsquedas.
Baja Es un peso inferior al predeterminado.
Valor predeterminado Es el peso estándar para los campos en los que se puede realizar búsquedas. Este peso proporciona un rendimiento razonablemente bueno en la mayoría de los casos.
Alta Un peso que es notablemente más alto que el predeterminado.
Muy alto Un peso dominante. Por lo general, se reserva para, como máximo, un campo.

Actualización del esquema y reindexación

Agregar pesos a los campos aptos para la búsqueda requiere una actualización del esquema y una posterior reindexación de los datos en el almacén de datos. La actualización del esquema lleva horas y no hay un indicador confiable que te diga cuándo finalizó la indexación, por lo que debes sobreestimar el tiempo de indexación.

Cómo establecer niveles de importancia en los campos

La tarea de establecer niveles de ponderación para los campos puede ser tediosa, ya que solo debes realizar pequeños cambios y revisar cuidadosamente los resultados de la búsqueda después para verificar si hay consecuencias no deseadas. Después de cada cambio, debes esperar a que se complete la reindexación antes de poder evaluar el impacto del cambio.

Solo puedes configurar la ponderación del campo de búsqueda a través de la API. Esta función no está disponible en la consola de Google Cloud .

Para establecer pesos, debes actualizar el esquema del almacén de datos a través del método de la API projects.locations.dataStores.schemas.patch.

  1. Si aún no tienes tu esquema, sigue las instrucciones para obtenerlo en Cómo ver una definición de esquema.

  2. Sigue las instrucciones para actualizar el esquema de forma programática. Agrega pesos a uno o más campos aptos para la búsqueda, como en estos ejemplos:

    "summary": {
       "type": "string",
       "searchable": true,
       "weight": "high"
     },
     "uri": {
       "type": "string",
       "searchable": true,
       "weight": "low"
     },
    

    En este ejemplo, el campo summary se establece en un peso más alto que el normal, y el campo uri, en un peso más bajo. Si deseas restablecer un peso al valor predeterminado, configúralo en default.

    Los valores permitidos para el parámetro de peso son los siguientes:

    • very_low
    • low
    • default
    • high
    • very_high
  3. Espera a que se complete la reindexación y prueba el comportamiento de la búsqueda.

Cómo hacer que los campos estén disponibles para la correlación parcial y de prefijo (versión preliminar)

En el caso de los campos de tipo string, puedes editar el esquema para que los campos estén disponibles para la concordancia de prefijo o la concordancia parcial. Esto te permite usar STARTS_WITH o CONTAINS en las expresiones de filtro.

Actualización del esquema y reindexación

Para que los campos estén disponibles para la coincidencia parcial o de prefijo, se requiere una actualización del esquema y la posterior reindexación de los datos en el almacén de datos. La actualización del esquema lleva horas, y no hay un indicador confiable que te diga cuándo se completó la indexación, por lo que debes sobreestimar el tiempo de indexación.

Actualiza el esquema para la coincidencia de prefijos y la coincidencia parcial

Para especificar campos como disponibles para la coincidencia de prefijos o la coincidencia parcial, debes actualizar el esquema del almacén de datos a través del método de la API projects.locations.dataStores.schemas.patch.

  1. Si aún no tienes tu esquema, sigue las instrucciones para obtenerlo en Cómo ver una definición de esquema.

  2. Sigue las instrucciones para actualizar el esquema de forma programática. Establece los parámetros que se pueden hacer coincidir en true en el esquema, como en estos ejemplos:

    "zone": {
       "type": "string",
       "searchable": true,
       "prefixMatchable": true
     },
     "region": {
       "type": "string",
       "searchable": true,
       "partialMatchable": true
     },
     "model": {
       "type": "string",
       "searchable": true,
       "prefixMatchable": true,
       "partialMatchable": true
     },
    

    En este ejemplo, el campo zone se configura para que coincida con el prefijo. Se pueden usar hasta 12 caracteres, sin distinción entre mayúsculas y minúsculas, en la expresión de filtro para que coincidan con el valor del campo. El campo region está configurado para que coincida parcialmente.

  3. Espera a que se complete la reindexación.

Detalles sobre la correlación de prefijos

La coincidencia de prefijos en Agent Search te permite filtrar los resultados según si el valor de un campo comienza con una cadena específica. Esta capacidad se basa en el operador STARTS_WITH y requiere que el campo de texto de destino se configure como prefixMatchable en el esquema.

Lógica de normalización y coincidencia

Para optimizar el rendimiento y garantizar la coherencia, el sistema aplica un proceso de normalización específico tanto al valor del campo (durante la indexación) como a la cadena de consulta (durante la búsqueda).

  1. Conversión a minúsculas: Todos los caracteres se convierten en minúsculas, lo que hace que la coincidencia no distinga mayúsculas de minúsculas.

  2. Truncamiento de 12 caracteres: El sistema solo considera los primeros 12 caracteres de la cadena. Los caracteres que superen este límite se ignorarán para la coincidencia de prefijos.

Cómo funciona

En el momento de la indexación, para un campo marcado como prefixMatchable, el sistema genera tokens de prefijo para los primeros 12 caracteres. Para un valor como asia-south1-c, el índice almacena tokens para a, as, asi, asia, asia-, etcétera, hasta el carácter 12 (asia-south1-).

En el momento de la consulta, la cadena proporcionada al operador STARTS_WITH también se convierte a minúsculas y se trunca a 12 caracteres. Luego, la búsqueda se compara con los tokens de prefijo almacenados.

Ejemplos

En los siguientes ejemplos, se muestra cómo la normalización de 12 caracteres afecta los resultados de la búsqueda:

  • Concordancia amplia: STARTS_WITH("A") coincide con cualquier valor que comience con "a" (sin distinción entre mayúsculas y minúsculas), como asia, australia o africa.

  • Prefijos parciales: STARTS_WITH("asia-south") coincide con asia-south1-a y asia-southeast1-b porque ambos comienzan con la cadena de 10 caracteres especificada.

  • Comportamiento de truncamiento: Debido a que solo se comparan los primeros 12 caracteres, STARTS_WITH("asia-south1-a") coincide con un valor de campo de asia-south1-c. Esto ocurre porque ambas cadenas se normalizan con el mismo prefijo de 12 caracteres: asia-south1-.

Detalles sobre la correlación parcial

La concordancia parcial en la Búsqueda con agente te permite filtrar los resultados según si el valor de un campo contiene palabras o tokens específicos. Esta función se basa en el operador CONTAINS y requiere que el campo de texto de destino se configure como partialMatchable en el esquema.

Lógica de normalización y tokenización

La Búsqueda con agente normaliza y asigna tokens tanto al valor del campo (durante la indexación) como a la cadena de consulta (durante la búsqueda):

  • Conversión a minúsculas: Agent Search convierte los caracteres a minúsculas. Esto hace que la coincidencia no distinga entre mayúsculas y minúsculas.

  • Tokenización: La Búsqueda con agente divide la cadena en tokens individuales (palabras) usando espacios y otros caracteres como delimitadores.

    • Delimitadores estándar: Los espacios y los signos de puntuación comunes actúan como delimitadores, incluidos los guiones (-), las barras (/), las comas (,), los puntos (.), los asteriscos (*), los corchetes ({ }), los paréntesis rectos ([ ]), los paréntesis (( )) y los apóstrofos (').

    • No delimitadores: Los signos et (&) y guion bajo (_) no actúan como delimitadores. El sistema trata los caracteres unidos por estos símbolos como un solo token.

    • Delimitador de correo electrónico (@): El símbolo @ actúa como un delimitador especial para ayudar a reconocer las direcciones de correo electrónico. El sistema genera tokens para los componentes individuales y para las formas combinadas. Por ejemplo, tokeniza support+tier1@example.com en support, tier1, example, com, support+tier1@example.com y support@example.com.

Cómo funciona

En el momento de la indexación, para un campo marcado como partialMatchable, el sistema normaliza y tokeniza el valor del campo, y almacena los tokens resultantes en el índice. Por ejemplo, tokeniza un valor de campo de 25-meter, outdoor, swimming pool en [25, meter, outdoor, swimming, pool].

En el momento de la búsqueda, la cadena proporcionada al operador CONTAINS se somete al mismo proceso de normalización y tokenización. Luego, el motor de búsqueda verifica que todos los tokens de la consulta resultantes coincidan con los tokens almacenados para el campo. El orden de los tokens no tiene efecto.

Ejemplos

En los siguientes ejemplos, se muestra cómo la tokenización afecta los resultados de la coincidencia parcial:

  • Coincidencia básica de tokens: Si el valor del campo es 25-meter, outdoor, swimming pool, coincide con un filtro de CONTAINS("Outdoor pool"). El sistema tokeniza la búsqueda en [outdoor, pool], y ambos existen en los tokens del campo.

  • Independencia del orden: Un filtro de CONTAINS("pool outdoor") también coincide con el valor del campo 25-meter, outdoor, swimming pool porque el sistema verifica la presencia de cada token independientemente de su orden.

  • Coincidencia de direcciones de correo electrónico: Si un campo almacena el correo electrónico support+tier1@example.com, los filtros como CONTAINS("support"), CONTAINS("example.com") o CONTAINS("support@example.com") coinciden correctamente debido a la tokenización especial del símbolo @.

¿Qué sigue?