Filtra con comprensión del lenguaje natural
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
En esta página, se explica cómo aplicar la comprensión del lenguaje natural para crear filtros automáticamente para las búsquedas y, de este modo, mejorar la calidad de los resultados que se muestran.
Puedes usar esta función con las apps de búsqueda que están conectadas a almacenes de datos estructurados.
Acerca de la comprensión de consultas en lenguaje natural
Si tienes una app de búsqueda personalizada con datos estructurados, las consultas en lenguaje natural de tus usuarios se pueden reformatear como consultas filtradas. Esto puede generar resultados de búsqueda de mejor calidad que la búsqueda de palabras en la cadena de búsqueda.
Por ejemplo, una búsqueda en lenguaje natural como "Find a coffee shop serving
banana bread" podría reformularse como una búsqueda y un filtro: "query": "banana bread", "filter": "type": ANY(\"cafe\").
Existen dos tipos de filtros que puedes aplicar para la comprensión de consultas en lenguaje natural: rígidos y flexibles.
Difícil. De forma predeterminada, los filtros extraídos se aplican como criterios obligatorios que un resultado debe satisfacer para devolverse.
El comportamiento es similar al del campo filter en el mensaje SearchRequest.
Suave. Una alternativa al filtro estricto es aplicar un aumento a los resultados de la búsqueda. Es más probable que se muestren los resultados potenciados, pero también se pueden mostrar los resultados que no cumplen con el criterio de potenciación.
El comportamiento es similar al del campo boost_spec en el mensaje SearchRequest.
Puedes experimentar con ambos tipos de filtros. Si las búsquedas no devuelven suficientes resultados, prueba el filtro flexible en lugar del filtro estricto.
Ejemplo: Extracción de campos de búsquedas (filtro estricto)
Esta función de comprensión de consultas en lenguaje natural se explica a través del ejemplo de la búsqueda de un hotel.
Toma la siguiente búsqueda realizada en un almacén de datos estructurados para un sitio de hoteles:
"Búscame un hotel apto para familias con al menos cuatro estrellas que cueste menos de USD 300 por noche, me permita llevar a mi perro y tenga Wi-Fi gratis".
Sin la comprensión de consultas en lenguaje natural, la app de búsqueda busca documentos que contengan las palabras de la consulta.
Con la comprensión de consultas en lenguaje natural y los datos estructurados de forma adecuada, la búsqueda se vuelve más eficaz, ya que se reemplaza parte del lenguaje natural de la consulta por filtros.
Si los datos estructurados tienen campos para star_rating (números), price (números) y amenities (cadenas), la búsqueda se puede formular para incluir los siguientes filtros:
Ejemplo: Con un filtro de ubicación geográfica (filtro estricto)
Este ejemplo es similar al anterior, excepto que incluye un filtro de ubicación geográfica, que es un tipo especial de filtro extraído.
Vertex AI Search puede reconocer ubicaciones en una búsqueda y crear filtros de proximidad para ellas.
Considera la siguiente búsqueda realizada en un sitio de empresas a nivel estatal:
"Encuentra un hotel elegante y con estilo de al menos 4 estrellas en San Francisco".
Con la comprensión de preguntas en lenguaje natural y el filtro de ubicación geográfica, la búsqueda se reformula para incluir el siguiente filtro de un hotel con al menos una calificación de 4 estrellas y dentro de un radio de 10 km de San Francisco:
En este ejemplo, GEO_DISTANCE es una dirección, pero en otras búsquedas, podría escribirse como una latitud y una longitud, aunque la búsqueda original contenga una dirección.
Ejemplo: Extracción de campos de búsquedas (filtro flexible)
Esta función de comprensión de consultas en lenguaje natural se explica a través del ejemplo de la búsqueda de un hotel, pero se muestran algunos resultados que no cumplen con todos los criterios.
Toma la siguiente búsqueda realizada en un sitio de viajes:
"Encuéntrame un hotel apto para familias con al menos cuatro estrellas que cueste menos de USD 300 por noche y que me permita llevar a mi perro".
Con la comprensión de consultas en lenguaje natural y los datos estructurados de forma adecuada, la búsqueda se vuelve más eficaz, ya que se reemplaza parte del lenguaje natural de la consulta por filtros flexibles. Si los datos estructurados tienen campos para star_rating (números), price (números) y amenities (cadenas), la consulta se puede reescribir como el siguiente refuerzo:
Condición de aumento extraída de la búsqueda en lenguaje natural:
En este caso, es posible que se muestren algunos hoteles con calificaciones más bajas o que no admitan mascotas.
Limitaciones
Las siguientes limitaciones se aplican a la comprensión de preguntas en lenguaje natural:
La comprensión de consultas en lenguaje natural no se puede aplicar a las apps de búsqueda combinada. Recibirás un error si intentas usar la comprensión de consultas en lenguaje natural con una app de búsqueda combinada.
La comprensión de consultas en lenguaje natural solo funciona para las apps de búsqueda personalizadas que usan almacenes de datos estructurados.
Usar la comprensión de preguntas en lenguaje natural aumenta la latencia, por lo que es posible que decidas no usarla si la latencia es un problema.
En el caso de la geolocalización, la ubicación debe describirse de forma explícita. No puedes usar ubicaciones como "cerca de mí" o "casa".
El radio de la ubicación geográfica es de 10 km y no se puede configurar.
Los campos booleanos no se pueden usar en los filtros. Por ejemplo, si la búsqueda es "Encuentra una habitación de hotel para no fumadores", un campo booleano como "non_smoking": true no es útil, pero un campo de cadena como "non_smoking": "YES" puede formar parte del filtro.
Antes de comenzar
Antes de comenzar a usar la comprensión de consultas en lenguaje natural, debes habilitarla para los almacenes de datos estructurados conectados a las apps que planeas usar.
Para habilitar la comprensión de consultas en lenguaje natural, sigue estos pasos:
REST
Busca el ID de tu almacén de datos. Si ya tienes el ID de tu almacén de datos, ve al siguiente paso.
En la consola de Google Cloud , ve a la página Aplicaciones basadas en IA y, en el menú de navegación, haz clic en Almacenes de datos.
Repite los pasos 1 y 2 para cada almacén de datos.
Espera aproximadamente 24 horas.
Si intentas usar la comprensión de consultas en lenguaje natural antes de que el almacén de datos esté listo, la respuesta que obtendrás será la misma que si filterExtractionCondition se hubiera establecido en DISABLED.
Búsqueda, que convierte las consultas en lenguaje natural en filtros
Para buscar una consulta en lenguaje natural y obtener resultados optimizados para consultas en lenguaje natural, haz lo siguiente:
Búsqueda, que convierte las ubicaciones de las búsquedas en filtros de ubicación geográfica
Para buscar una consulta en lenguaje natural y obtener resultados optimizados para consultas en lenguaje natural, incluida la proximidad a ubicaciones, haz lo siguiente:
Especifica campos para las consultas en lenguaje natural
Para que un campo se use como filtro en la comprensión de consultas en lenguaje natural, debe marcarse como indexable en el esquema. (Para obtener información general sobre cómo ver y editar un esquema, consulta Actualiza un esquema).
Vertex AI Search determina cuáles de los campos indexables del esquema tienen sentido usar en los filtros de comprensión de consultas en lenguaje natural. Sin embargo, si se incluyen campos que no deseas, debes crear una lista de entidades permitidas para especificar qué campos se pueden usar.
Considera un sitio de reservas de hoteles en el que hay campos como amenities, id, price_per_night, rating y room_types. De estos, si id es una cadena de caracteres y números, es probable que Vertex AI Search lo excluya de los campos que se usan para la comprensión de consultas en lenguaje natural.
Sin embargo, si observas que Vertex AI Search devuelve resultados de búsqueda de baja calidad porque no excluye los campos que debería, debes especificar qué campos se pueden usar. Por ejemplo, si el esquema del hotel tiene un campo para renovation_status que no es útil para los clientes y podría ser vergonzoso para la cadena hotelera, puedes excluirlo de la lista de campos permitidos.
Ejemplo de un registro del almacén de datos estructurados de datos de hoteles.
{"title":"Miller-Jones","rating":1.7,"price_per_night":115.16,"id":2902,…],"amenities":["Spa","Parking","Restaurant"…],"renovation_status":"Restaurant and spa renovation planned for 2027"}
Una lista de entidades permitidas adecuada para los campos de este ejemplo sería ["amenities",
"price_per_night", "rating", "title"].
En la lista, falta renovation_status.
Para especificar una lista de entidades permitidas de campos que se pueden usar en la comprensión de consultas en lenguaje natural en una búsqueda, haz lo siguiente:
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-12-04 (UTC)"],[],[]]