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 legible. | 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 legible, 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).
Filtrado de las búsquedas
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.
Búsqueda geoespacial
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:
- Defina un campo que se pueda filtrar de uno de estos tipos: Edm.GeographyPoint, Collection(Edm.GeographyPoint, Edm.GeographyPolygon).
- Compruebe que los documentos entrantes incluyen las coordenadas adecuadas.
- Una vez completada la indexación, compile una consulta que use un filtro y una función geoespacial.
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=2024-07-01
{
"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.