🚀📊 Optimiza tus Datos con Búsqueda Cognitiva en Azure
Aprende a mejorar la búsqueda de datos con los servicios cognitivos de Azure.
Introducción
Azure Cognitive Search se presenta como una solución robusta y versátil para enfrentar este desafío. En este post, exploraremos cómo este servicio no solo facilita la búsqueda de información relevante dentro de grandes volúmenes de datos, sino que también mejora la experiencia del usuario final.
¿Qué es este servicio?
Azure Cognitive Search es un servicio de búsqueda como servicio (search-as-a-service) que ofrece capacidades de búsqueda avanzadas sobre contenido heterogéneo. Permite la creación de índices de búsqueda que son capaces de proporcionar resultados rápidos y precisos, utilizando algoritmos de inteligencia artificial para entender y procesar el lenguaje natural. Además, se integra con otras soluciones de Azure para ofrecer una experiencia de búsqueda rica y personalizable.
¿Qué cubrirá este post?
A lo largo de este post, abordaremos varios puntos clave, incluyendo:
Cómo configurar un índice de búsqueda cognitiva en Azure.
Las ventajas de utilizar Azure Cognitive Search en tus proyectos.
¿Por qué es importante para los arquitectos de soluciones?
Para los arquitectos de soluciones en Azure, entender y aplicar Azure Cognitive Search significa poder ofrecer sistemas más inteligentes y eficientes. Este servicio permite una integración sin fisuras con otras soluciones de Azure, como Azure Functions y Azure Logic Apps, posibilitando la automatización y mejora continua de los flujos de trabajo relacionados con la gestión de datos.
Además, facilita la implementación de soluciones de búsqueda personalizadas que pueden adaptarse a las necesidades específicas de cada proyecto.
¿Qué problemas puede resolver?
Azure Cognitive Search se posiciona como una solución efectiva para diversos desafíos, entre ellos:
Búsqueda eficiente en grandes volúmenes de datos no estructurados.
Implementación de experiencias de búsqueda personalizadas y contextuales.
Automatización del procesamiento y análisis de datos mediante inteligencia artificial.
Integración y gestión de información proveniente de múltiples fuentes.
Después de haber creado un servicio de Azure Cognitive Search en el post anterior, el siguiente paso es crear un Index
Ejercicio en Práctica
- Accedemos al Portal de Azure y localizamos el servicio previamente creado. Una vez identificado, hacemos clic en el botón "Add Index".
- Asignamos un nombre al índice.
- Hacemos clic en el botón "Add Field" para agregar el campo HotelId y, a continuación, presionamos el botón "Save".
- Podemos agregar los campos manualmente y seleccionar los atributos que queremos que tenga cada columna (Filtrable, Ordenable, Facetable, Buscable).
- También podemos crear este índice y sus campos mediante código. Para ello, crearemos un proyecto de consola e instalaremos el siguiente paquete.
- Luego crearemos una clase llamada Hotel
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Microsoft.Spatial;
using Newtonsoft.Json;
namespace AzureCognitiveSearch
{
public partial class Hotel
{
[SimpleField(IsKey = true, IsFilterable = true)]
public string HotelId { get; set; }
[SearchableField(IsSortable = true)]
public string HotelName { get; set; }
[SearchableField(AnalyzerName = LexicalAnalyzerName.Values.EnLucene)]
public string Description { get; set; }
[SearchableField(AnalyzerName = LexicalAnalyzerName.Values.FrLucene)]
[JsonProperty("Description_fr")]
public string DescriptionFr { get; set; }
[SearchableField(IsSortable = true, IsFacetable = true, IsFilterable = true)]
public string Category { get; set; }
[SearchableField(IsFacetable = true, IsFilterable = true)]
public string[] Tags { get; set; }
[SimpleField(IsSortable = true, IsFacetable = true, IsFilterable = true)]
public bool? ParkingIncluded { get; set; }
[SimpleField(IsSortable = true, IsFacetable = true, IsFilterable = true)]
public DateTimeOffset? LastRenovationDate { get; set; }
[SimpleField(IsSortable = true, IsFacetable = true, IsFilterable = true)]
public double? Rating { get; set; }
[SimpleField(IsSortable = true, IsFilterable = true)]
public GeographyPoint Location { get; set; }
}
}
- Ahora, en nuestra clase Program, agregaremos el siguiente código. El método
CreateIndex
se utiliza para crear nuestro índice, pasando como parámetro la claseHotel
, y también tenemos el métodoCreateSearchIndexClient
, donde crearemos la instancia para manejar los índices.
using Azure;
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using AzureCognitiveSearch;
var serviceClient = CreateSearchIndexClient();
CreateIndex(serviceClient);
///Metodo que crea el indice
void CreateIndex(SearchIndexClient serviceClient){
FieldBuilder fieldBuilder = new FieldBuilder();
var searchFields = fieldBuilder.Build(typeof(Hotel));
var definition = new SearchIndex("hoteles", searchFields);
serviceClient.CreateIndex(definition);
}
SearchIndexClient CreateSearchIndexClient(){
string searchServiceEndPoint = "";
string adminApiKey = "";
SearchIndexClient indexClient =
new SearchIndexClient(new Uri(searchServiceEndPoint), new AzureKeyCredential(adminApiKey));
return indexClient;
}
- Ahora bien, en nuestro método
CreateSearchIndexClient
, debemos pasarle los valores delApiKey
y delEndpoint
. Para obtener esos valores, vamos al servicio en el portal de Azure.
- Enpoint
- En la opción de "keys", copiamos el
ApiKey
.
- Una vez que hemos configurado nuestro programa para crear un índice en Azure Search y hemos actualizado los métodos con los valores correctos del
ApiKey
yEndpoint
, estamos listos para ejecutar el programa.
- Revisamos el index en el portal
Repositorio del proyecto Repo Github
Consideraciones finales
La implementación de Azure Cognitive Search en tus proyectos no solo te permite acceder y gestionar datos de manera más eficaz, sino que también abre la puerta a la creación de aplicaciones más inteligentes y responsivas.
Espero que este post te haya proporcionado una visión clara de cómo este servicio puede ser un aliado en la transformación digital de tu organización.
Te invito a experimentar con Azure Cognitive Search y a descubrir por ti mismo cómo puede potenciar tus soluciones en Azure.