Filtrar con la comprensión del lenguaje natural
Organízate con las colecciones
Guarda y clasifica 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 consultas de búsqueda y, por lo tanto, mejorar la calidad de los resultados devueltos.
Puedes usar esta función con aplicaciones de búsqueda que estén conectadas a almacenes de datos estructurados.
Información sobre la comprensión de consultas en lenguaje natural
Si tienes una aplicación de búsqueda personalizada con datos estructurados, las consultas en lenguaje natural de tus usuarios se pueden reformatear como consultas filtradas. Esto puede dar lugar a resultados de búsqueda de mayor calidad que si se buscan palabras en la cadena de consulta.
Por ejemplo, una consulta en lenguaje natural como "Find a coffee shop serving
banana bread" se puede reformular como una consulta y un filtro:
"query": "banana bread", "filter": "type": ANY(\"cafe\").
Hay dos tipos de filtros que puedes aplicar para comprender las consultas en lenguaje natural: estrictos y flexibles.
Difícil. De forma predeterminada, los filtros extraídos se aplican como criterios obligatorios que debe cumplir un resultado para devolverse.
El comportamiento es similar al del campo filter del mensaje SearchRequest.
Suave. Una alternativa al filtro estricto es aplicar un aumento a los resultados de búsqueda. Es más probable que se devuelvan los resultados potenciados, pero también se pueden devolver resultados que no cumplan el criterio de potenciación.
El comportamiento es similar al del campo boost_spec del mensaje SearchRequest.
Puedes experimentar con ambos tipos de filtros. Si las búsquedas no devuelven suficientes resultados, prueba el filtro flexible en lugar del estricto.
Para obtener más información sobre cómo aplicar un filtro suave, consulta la sección Buscar con el filtro suave de abajo.
Ejemplos
La mejor forma de explicar esta función es con ejemplos:
Ejemplo: extracción de campos de consultas (filtro estricto)
Esta función de comprensión de consultas en lenguaje natural se explica con el ejemplo de la búsqueda de un hotel.
Consulta realizada a un almacén de datos estructurados de un sitio de hoteles:
"Búscame un hotel ideal para familias con al menos cuatro estrellas que cueste menos de 300 € por noche, en el que pueda llevar a mi perro y que tenga Wi-Fi gratis".
Si no se comprende la consulta en lenguaje natural, la aplicación de búsqueda busca documentos que contengan las palabras de la consulta.
Gracias a la comprensión de las consultas en lenguaje natural y a los datos estructurados de forma adecuada, la búsqueda es más eficaz, ya que se sustituye 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 consulta se puede formular para incluir los siguientes filtros:
Ejemplo: Con un filtro de geolocalización (filtro estricto)
Este ejemplo es similar al anterior, pero incluye un filtro de geolocalización, que es un tipo especial de filtro extraído.
Vertex AI Search puede reconocer ubicaciones en una consulta y crear filtros de proximidad para esas ubicaciones.
Consulta la siguiente petición hecha a un sitio de empresas de todo el estado:
"Búscame un hotel elegante y con estilo de al menos 4 estrellas en San Francisco".
Gracias a la comprensión de consultas en lenguaje natural y al filtro de geolocalización, la búsqueda se reformula para incluir el siguiente filtro de un hotel con una valoración de al menos 4 estrellas y a un radio de 10 km de San Francisco:
En este ejemplo, GEO_DISTANCE es una dirección, pero en otras consultas puede escribirse como latitud y longitud, aunque la consulta original contuviera una dirección.
Ejemplo: Extracción de campos de consultas (filtro flexible)
Esta función de comprensión de consultas en lenguaje natural se explica con el ejemplo de buscar un hotel, pero mostrar algunos resultados que no cumplen todos los criterios.
Consulta la siguiente petición hecha a un sitio de viajes:
"Búscame un hotel ideal para familias de al menos cuatro estrellas que cueste menos de 300 € por noche y en el que pueda llevar a mi perro".
Gracias a la comprensión de las consultas en lenguaje natural y a los datos estructurados de forma adecuada, la búsqueda es más eficaz, ya que se sustituye 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 aumento:
Condición de impulso extraída de la consulta en lenguaje natural:
En este caso, es posible que se devuelvan algunos hoteles con una valoración más baja o que no admitan mascotas.
Limitaciones
Se aplican las siguientes limitaciones a la interpretación de consultas en lenguaje natural:
La comprensión de consultas en lenguaje natural no se puede aplicar a las aplicaciones de búsqueda combinada. Si intentas usar la comprensión de consultas en lenguaje natural con una aplicación de búsqueda combinada, se producirá un error.
La comprensión de consultas en lenguaje natural solo funciona en aplicaciones de búsqueda personalizada que usan almacenes de datos estructurados.
Usar la comprensión de consultas en lenguaje natural aumenta la latencia, por lo que puede 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 geolocalización es de 10 km y no se puede configurar.
No se pueden usar campos booleanos en filtros. Por ejemplo, si la consulta es "Búscame 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 empezar
Antes de empezar a usar la comprensión de consultas en lenguaje natural, debes habilitarla en los almacenes de datos estructurados conectados a las aplicaciones que quieras usar.
Para habilitar la interpretación de consultas en lenguaje natural, sigue estos pasos:
REST
Busca el ID de tu almacén de datos. Si ya tienes el ID del almacén de datos, ve al siguiente paso.
En la Google Cloud consola, ve a la página Aplicaciones de 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 definido como DISABLED.
Buscar y convertir consultas en lenguaje natural en filtros
Para buscar una consulta en lenguaje natural y obtener resultados optimizados para consultas en lenguaje natural, sigue estos pasos:
Búsqueda, conversión de ubicaciones en consultas a filtros de geolocalización
Para buscar una consulta en lenguaje natural y obtener resultados optimizados para consultas en lenguaje natural, incluida la proximidad a ubicaciones, haz lo siguiente:
Especificar campos para las consultas en lenguaje natural
Para que un campo se pueda usar como filtro en la interpretació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 Actualizar un esquema.
Vertex AI Search determina qué campos indexables del esquema se pueden usar en los filtros de comprensión de consultas en lenguaje natural. Sin embargo, si se incluyen campos que no quieres, debes crear una lista de permitidos para especificar qué campos se pueden usar.
Pensemos en un sitio de reservas de hoteles, donde 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 utilizados para la comprensión de consultas en lenguaje natural.
Sin embargo, si observas que Vertex AI Search devuelve resultados de consulta de baja calidad porque no excluye los campos que debería, tendrás que especificar qué campos se pueden usar. Por ejemplo, si el esquema de hotel tiene un campo renovation_status que no es útil para los clientes y que podría resultar embarazoso para la cadena hotelera, puede excluirlo de la lista de campos permitidos.
Ejemplo de un registro de la tienda 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 permitidos 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 permitidos de campos que se pueden usar en una consulta de lenguaje natural en una búsqueda, haz lo siguiente:
[[["Es fácil de entender","easyToUnderstand","thumb-up"],["Me ofreció una solución al problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Es difícil de entender","hardToUnderstand","thumb-down"],["La información o el código de muestra no son correctos","incorrectInformationOrSampleCode","thumb-down"],["Me faltan las muestras o la información que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-12-04 (UTC)."],[],[]]