Consultas en Azure AI Search

Azure AI Search admite construcciones de consulta para una amplia gama de escenarios, desde la búsqueda de texto de forma libre hasta patrones de consulta muy especificados, pasando por la búsqueda de vectores. Todas las consultas se ejecutan en un índice de búsqueda que almacena contenido que se puede buscar.

Tipos de consultas

Formulario de consulta Contenido que se puede buscar Descripción
búsqueda de texto completo Índices invertidos de términos tokenizados. Las consultas de texto completo recorren en iteración los índices invertidos que están estructurados para conseguir unos exámenes rápidos, en los que se puede encontrar una coincidencia en cualquier campo, dentro de cualquier número de documentos de búsqueda. El texto se analiza y se tokeniza para la búsqueda de texto completo.
Búsqueda de vectores Índices vectoriales de incrustaciones generadas. Las consultas vectoriales recorren en iteración los campos vectoriales en un índice de búsqueda;
Búsqueda híbrida todo lo anterior, en un único índice de búsqueda. Combina la búsqueda de texto y la búsqueda de vectores en una única solicitud de consulta. La búsqueda de texto funciona en el contenido de texto sin formato en campos "buscables" y "filtrables". La búsqueda de vectores funciona en el contenido de los campos vectoriales.
Otros Texto sin formato y contenido alfanumérico. Contenido sin procesar, extraído textual de documentos de origen, compatibilidad con filtros y consultas de coincidencia de patrones, como la búsqueda geoespacial, la búsqueda aproximada y la búsqueda por campos.

Este artículo se centra en la última categoría: consultas que funcionan en texto sin formato y contenido alfanumérico, extraído intacto de la fuente original, que se usan en los filtros y otros formularios de consulta especializados.

Autocomplete y consultas sugeridas

Autocompletar o los resultados sugeridos son alternativas a search que activan solicitudes de consulta sucesivas basadas en entradas de cadenas parciales (después de cada carácter) en una experiencia de búsqueda a medida que escribe. Puede usar los parámetros autocomplete y suggestions juntos o por separado, como se describe en este tutorial, pero no puede usarlos con search. Los términos completados y las consultas sugeridas se derivan del contenido del índice. El motor nunca devuelve una cadena o sugerencia que no existe en el índice. Para más información, consulte Autocomplete (API REST) y Suggestions (API REST).

Los filtros se usan ampliamente en aplicaciones basadas en Azure AI Search. En las páginas de las aplicaciones, los filtros se suelen visualizar como facetas en las estructuras de navegación por vínculos para el filtrado dirigido por el usuario. Los filtros también se usan internamente para exponer segmentos de contenido indexado. Por ejemplo, puede inicializar una página de búsqueda mediante un filtro en una categoría de producto, o un idioma si el índice contiene campos en inglés y francés.

También podría necesitar filtros para invocar un formulario de consulta especializado, como se indica en la tabla siguiente. Puede utilizar un filtro con una búsqueda no especificada (search=*) o con una cadena de consulta que incluya términos, frases, operadores y patrones.

Escenario de filtrado Descripción
Filtros de rango En Azure AI Search, las consultas de intervalo se compilan con el parámetro de filtro. Para más información y ejemplos, consulte Ejemplo de filtro de intervalo.
Navegación por facetas En el árbol de navegación por facetas, los usuarios pueden seleccionar facetas. Cuando están respaldados por filtros, los resultados de la búsqueda se reducen con cada clic. Cada faceta tiene el respaldo de un filtro que excluye los documentos que ya no coinciden con los criterios que proporciona la faceta.

Nota:

El texto que se usa en una expresión de filtro no se analiza durante el procesamiento de la consulta. Se supone que la entrada de texto es un patrón de caracteres textual que distingue entre mayúsculas y minúsculas, y que coincide o no. Las expresiones de filtro se construyen mediante la sintaxis de OData y se pasan en un parámetro filter en todos los campos filtrables del índice. Para obtener más información, consulte Filtros de Azure AI Search.

La búsqueda geoespacial empareja según las coordenadas de latitud y longitud de una ubicación para una experiencia de búsqueda basada en mapas o "buscar cerca de mí". En Azure AI Search, puede implementar la búsqueda geoespacial con estos pasos:

La búsqueda geoespacial utiliza los kilómetros para indicar la distancia. Las coordenadas se especifican en este formato: (longitude, latitude).

Este es un ejemplo de un filtro para la búsqueda geoespacial. Este filtro busca otros campos Location en el índice de búsqueda que tienen coordenadas dentro de un radio de 300 kilómetros del punto geográfico (en este ejemplo, Washington D.C.). Devuelve información de dirección en el resultado e incluye una cláusula opcional facets para la navegación automática basada en la ubicación.

POST https://{{searchServiceName}}.search.windows.net/indexes/hotels-vector-quickstart/docs/search?api-version=2023-07-01-Preview
{
    "count": true,
    "search": "*",
    "filter": "geo.distance(Location, geography'POINT(-77.03241 38.90166)') le 300",
    "facets": [ "Address/StateProvince"],
    "select": "HotelId, HotelName, Address/StreetAddress, Address/City, Address/StateProvince",
    "top": 7
}

Para obtener más información y ver ejemplos, vea Ejemplo de búsqueda geoespacial.

Búsqueda de documentos

A diferencia de los formularios de consulta descritos anteriormente, este recupera un solo documento de búsqueda por identificador, sin la búsqueda o examen del índice correspondiente. Solo se solicita y se devuelve un documento. Cuando un usuario selecciona un elemento de los resultados de la búsqueda, recuperar el documento y rellenar una página de detalles con campos es una respuesta típica, y una búsqueda de documento es la operación que lo hace posible.

Búsqueda avanzada: aproximada, con caracteres comodín, por proximidad, con expresiones regulares

Un formulario de consulta avanzado depende de los operadores y el analizador completos de Lucene que desencadenan un comportamiento de consulta específico.

Tipo de consulta Uso Ejemplos y más información
Búsqueda clasificada por campos search parámetro, queryType=full Compila una expresión de consulta compuesta con un único campo como destino.
Ejemplo de búsqueda clasificada por campos
Búsqueda aproximada search parámetro, queryType=full Coincidencias en términos con construcción u ortografía similares.
Ejemplo de búsqueda aproximada
Búsqueda por proximidad search parámetro, queryType=full Busca términos que están cerca uno del otro en un documento.
Ejemplo de búsqueda por proximidad
Priorización de términos search parámetro, queryType=full Clasifica un documento superior si contiene el término prioritario con respecto a otros que no lo tienen.
Ejemplo de priorización de términos
Búsqueda de expresiones regulares search parámetro, queryType=full Coincidencias basadas en el contenido de una expresión regular.
Ejemplo de expresión regular
búsqueda de prefijo o de carácter comodín search parámetro *~ o ?, queryType=full Coincidencias según un prefijo y una virgulilla (~) o carácter individual (?).
Ejemplo de búsqueda con caracteres comodín

Pasos siguientes

Para obtener una visión más detallada de la implementación de consultas, revise los ejemplos de cada sintaxis. Si no está familiarizado con la búsqueda de texto completo, echar un vistazo más detallado a lo que el motor de consultas hace puede ser una opción igualmente buena.