En este artículo hablaremos de Azure Search. Azure Search es una solución que Microsoft nos brinda para poder integrar una excelente experiencia de búsqueda en nuestras aplicaciones móviles, web o cualquier aplicación como empresariales.
En esta entrega veremos qué es Azure Search. También, como configurar nuestra cuenta de Azure Search y un pequeño demo de cómo utilizarlos en una aplicación web.
Este documento está dirigido a personas que conocen muy poco o nada sobre el tema o personas que desarrollan tareas de consultoría de desarrollo o que simplemente están interesados en leer e investigar sobre la tecnología alcanzada por esta publicación.
¡Comencemos!
Todos los días, como usuarios, al usar aplicaciones estamos acostumbrados a los métodos de búsqueda rápidos y muy eficientes. Por ejemplo, todos los días, en algún momento, buscamos en Google o algún motor de búsqueda de nuestra preferencia. Cuando usamos otras aplicaciones buscamos la misma experiencia de búsqueda.
Azure Search nos da la posibilidad de tener la misma experiencia de búsqueda en nuestras aplicaciones. Todo esto es posible gracias a que tenemos disponible una gran cantidad de APIs Rest para consumir el servicio, también, un SDK muy completo en .Net. Por último, dentro del portal de Azure tenemos muchas herramientas para la creación de prototipos, creación y consulta de índices.
Para poder comenzar es necesario una cuenta de Azure. Les dejo el link para poder obtener una cuenta gratuita junto a 200 dolares de credito para poder probar las capacidades que Azure Search brinda:
Características de Azure Search
A continuación analizaremos las características funcionales más interesantes, desde mi punto de vista, que podemos usar con Azure Search. Son las siguientes:
Búsqueda de texto completo y analisis de texto
Corresponde a la búsqueda que se basa escribiendo en una caja de texto. Podemos usar operadores lógicos o frases de búsqueda como cualquier buscador de internet.
Integración de datos
Azure Search soporta gran variedad de orígenes de datos. La única característica que tienen que tener estos datos es que tienen que respetar la estructura de datos del tipo JSON.
No obstante tenemos disponible soporte para Azure SQL Database, Azure Cosmos DB o Azure Blob Storage. En este último podemos tener documentos del tipo Microsoft Office, PDF o Html los cuales pueden ser indexados para búsquedas dentro de documentos.
Análisis Lingüístico
Básicamente, tendremos la capacidad de analizar la busqueda relacionado con una fonética de un lenguaje o alguna expresión regular. Podemos controlar el idioma, los tiempos verbales, género, nombres plurales o singulares o inclusive el manejo de palabras compuestas.
Características de la experiencia del usuario
Entre las características más importantes que podemos brindarles a nuestros usuarios tenemos:
- Sugerencias de búsqueda: a medida que los usuarios van escribiendo su búsqueda le podemos ir sugerencias mostrando relacionadas con lo ingresado.
- Navegación por facetas: Es un listado de categorización que podemos usar como filtros. Este tipo de filtro es muy similar a los sitios de compras, como amazon, que en el lado izquierdo tenemos varias opciones agrupadas que al hacer un solo click filtran la búsqueda principal.
- Resaltado de referencias: podemos aplicarle un formato al resultado, por ejemplo subrayarlo en negrita, indicando que está relacionado con la búsqueda.
- Ordenación: podemos ofrecer varias formas de ordenar la información obtenida del resultado de búsqueda.
- Paginación: Como todo buen listado de búsqueda, podemos paginarlo.
Supervisión e informes
Es importante analizar las búsquedas de nuestros usuarios con el objetivo de tener que ajustar nuestro índices para que las posteriores búsquedas sean más efectivo y eficiente. Azure Search registra todas las búsquedas realizadas para posterior análisis. En un post futuro tocaremos este tema con más detalle.
Otras Características
Además de las nombradas, Azure Search tiene las siguientes características:
- Georeferencia: Filtro por ubicaciones geográficas.
- Relevancia: Usando perfiles de puntuación podemos darle relevancia a ciertos documentos.
- Herramientos de prototipos e Inspección: configurar indexadores, crear índices, consulta de un índice particular, etc.
Manos a la Obra
Una vez que tenemos nuestra cuenta Azure, es muy sencillo crear una cuenta de Azure Search. Debemos seguir los siguiente pasos:
- Ingresar al portal y buscar en el MarketPlace “Búsqueda de Azure”, lo seleccionamos y presionamos crear
- Completamos los datos que nos solicita el formulario. En mi caso la url sera testwod pero pueden seleccionar un nombre que ustedes deseen. En el plan de tarifa, para motivos de este demo, usaremos la tarifa gratis.
- Una vez creado, vamos a grupo de recursos, seleccionamos el nombre de recurso que utilizamos y dentro podemos ver la cuenta de Azure Search que creamos. Le hacemos clic y veremos la información necesaria de nuestra cuenta.
Por otra parte, he creado una base de datos Azure SQL. Al Crear la base de datos Azure SQL tenemos la opción de que nos cree los datos AventureWorksLT. Esta la usaremos para conectar nuestro servicio de Azure Search con motivo del demo.
Volvamos a nuestro panel de Azure Search. Para conectar nuestra base de datos debemos seleccionar desde la barra de opciones “Importar Datos” y seleccionamos Muestras para nuestro demo:
Luego de vincularlo veremos la pantalla de configuración de nuestros índices que descubrirá, desde nuestro origen de datos. Vamos a dejarlos por default.
Por último, seleccionamos un nombre para nuestro índice. El tiempo el cual queremos que se refresque nuestros índices es configurable. Cuales son retornables, cuales filtrables, por cual vamos a ordenar, etc. Para esto último debemos habilitarlo en el datasource como dice en el mensaje. Por el momento no será necesario.
Ahora, una vez que el indexador termine podremos ingresar al explorador de búsqueda para probar algunas consultar.
En la imagen podemos ver que tenemos un cuadro donde podemos ingresar nuestra consulta, como también, un cuadro donde podemos obtener la url de esa búsqueda. Por último, un cuadro con el resultado de la búsqueda.
Vamos a escribir la siguiente consulta y veremos los resultado que se corresponden a nuestros parámetros:
search=granite&country=us |
Conclusión
Azure Search es una excelente herramienta para realizar potentes búsquedas desde nuestros orígenes de datos existentes. No es necesario crear una plataforma para esto. Azure Search pone a nuestra disponibilidad la misma experiencia de usuario y la misma potencia de un motor de búsqueda especializado para nuestras aplicaciones.
En este post hemos hablado sobre Azure Search, sus características, como configurar nuestra cuenta y configurar nuestros primeros índices para hacer pruebas. En el próximo post integraremos estos índices a una aplicación en .Net para poder explorar un poco más las capacidades en un sitio web