Microsoft Azure tiene un servicio dedicado específicamente a la búsqueda de datos, se llama “Azure Search”. Este servicio se puede clasificar como un “Search as a Service” o “Búsqueda como Servicio”.
Azure Search nos proporciona búsquedas potentes a gran velocidad que nos devuelven información de manera precisa y categorizada, ofreciéndonos una experiencia de usuario satisfactoria en cuestión de tiempo y resultados como algunos de los navegadores más populares que ya conocemos “Bing o Google”.
Azure Search es un servicio de búsqueda de texto completo (full-text-search) que se encuentra en plataforma de cómputo en la nube de Microsoft, por lo que no tendremos que preocuparnos por la infraestructura que se encuentra detrás, la escalabilidad y replicación no nos concierne aquí.
Dentro de las entrañas de Azure Search tenemos como base un servicio llamado «ElasticSearch» un motor de búsqueda en tiempo real esencialmente open source.
Las búsquedas de Azure Search son basadas en índices y documentos. Un origen de datos tipo documento puede ser DocumentDB (servicio de datos NoSQL de Microsoft) o Mongo DB.
Características
- API REST: Una sola API para acceder y gestionar el servicio de Azure Search.
- Facetas: Una faceta se refiere a la cantidad de ocurrencias de un mismo valor de un metadata (conjuntos de resultados de búsqueda que se pueden agrupar).
- Lenguaje: Mas de 50 lenguajes soportados hasta el momento.
- Filtros y búsquedas de texto: Van en función de cómo se configuren los índices. Puede realizar exploraciones por valor completo o identificar ese filtro dentro de un texto complejo con el lenguaje Lucene.
- Geolocalización: Es posible guardar coordenadas de referencia geoespacial, ayuda a tener búsquedas de proximidad, es decir: Geográficamente donde están mis registros almacenados.
- Estructura JSON: Las estructuras de almacenamiento son flexibles y pueden crecer sin problemas, no tenemos un esquema rígido.
- Análisis fonético: Tiene una característica muy interesante en la que hace comparaciones fonéticas de palabras para obtener un mejor resultado de búsqueda.
- Múltiples fuentes de datos: Las búsquedas van hacia orígenes de datos como SQL Azure, Document DB y Blob Storage (archivos).
- Puntaje: Cada resultado de búsqueda tiene un nivel de score o ponderación que le da mayor o menor valor a los resultados de búsqueda.
- Precio: Es gratuito para un número limitado de índices y documentos, para una mayor capacidad están los planes básicos, estándar o de alta densidad.
¿Qué tan difícil es crear este servicio en Microsoft Azure?
Bastará con no más de 5 clics en el portal de Azure para poder crear este servicio y utilizarlo directamente desde los centros de datos de Microsoft.
Al momento de escribir este post, tenemos tres tipos de precios, estos precios van en función al número de índices, documentos y tamaño de almacenamiento (esencialmente). Con el tiempo estos paquetes pueden cambiar, sin embargo Azure nos proporciona un esquema «compartido» con el cual no tenemos costo alguno por utilizar nuestro servicio, aunque no tendremos facultades de escalabilidad. Para fines de prueba iniciales, es una buena recomendación.
En la imagen de abajo expongo un ejemplo de cómo podría actuar Azure Search en una tienda online.
Ahora veamos de manera práctica como podemos configurar Azure Search desde el portal web y también con código C# en Visual Studio:
Azure Search Super Quick
Este código te ayudará a administrar y buscar documentos en Azure Search usando C# .NET (crear / eliminar índices, crear / buscar documentos).
Acerca del Proyecto
Azure Search es un servicio para hacer rápidas búsquedas dentro de fuentes de datos como Azure Cosmos, Document DB, SQL Azure o Azure Storage. En este proyecto tu encontrarás como hacer búsquedas dentro de Azure Search con .NET usando la biblioteca de Azure Search Client.
Tecnología Utilizada
- Visual Studio 2015.¿
Requerimientos
- Visual Studio 2015 o posteriores
- Una cuenta de Microsoft Azure.
Sigueme en Twitter @vmorenoz
¿Te gustó este artículo? Únete a Facebook en MicrosoftLand