Como usuarios comunes de internet, estamos acostumbrados a utilizar servicios de búsquedas para filtrar la información que estamos buscando. Si eres un amante de la música que navega por tus pistas favoritas, un blogger de comida que observa las nuevas tendencias gastronómicas de la ciudad en la que estás visitando, buscas a tu artista favorito en su próximo concierto o simplemente compras en tu aplicación de compras favorita, la opción de búsqueda es la parte esencial de cualquier sitio web importante basado en datos.

Sin búsqueda o incluso sin un mecanismo de búsqueda adecuado, nuestros datos serán prácticamente inaccesibles para los usuarios de nuestras aplicaciones. Existen varias herramientas para implementar servicios de búsqueda en la nube:

  • Google Cloud Search
  • Azure Cognitive Search
  • SharePoint Online / Office 365 Search
  • Amazon CloudSearch
  • Amazon ElasticSearch

En este post nos centraremos en Amazon CloudSearch.

Que es Amazon CloudSearch

Amazon CloudSearch es un servicio administrado en la nube de AWS que ayuda a los usuarios a crear soluciones de búsqueda rápidas, escalables, rentables y fáciles de configurar para sus aplicaciones. CloudSearch Soporta 34 idiomas y características de búsqueda populares tales como el resaltado, autocompletado o la búsqueda geoespacial.

Amazon CloudSearch utiliza Apache Solr como motor de búsqueda de texto subyacente, que permite acciones tales como la búsqueda de texto completo o indexación en tiempo real, además de funciones NoSQL y manejo productivo de documentos.

Es posible utilizar Amazon CloudSeach a través de las tres capas de servicio que se mencionan a continuación:

  • Document service (Servicio de Documentos)
  • Configuration Service (Servicio de Configuración)
  • Search service (Servicio de Busqueda)

IAM permite acceder, administrar y configurar los servicios de Amazon CloudSearch. El servicio de configuración y el servicio de documentos existen para que los desarrolladores configuren y mantengan el dominio de CloudSearch y sus datos. Mientras que el servicio de búsqueda está orientado al cliente, donde los desarrolladores y el control de calidad pueden verificar la configuración, indexar y validar los datos. Además, esto está expuesto a los usuarios del mundo real, donde atenderá todas las solicitudes de búsqueda provenientes de una aplicación web o de una aplicación móvil donde se configura el dominio de búsqueda. El servicio de búsqueda también es responsable de entregar datos rápidos, precisos y en tiempo real para todas las consultas de los usuarios.

Document Service (Servicio de Documentos)

Document Service se utiliza para administrar y configurar datos de búsqueda de dominio. Para cargar los datos, éstos deben tener formato XML o JSON. Cada elemento que se devuelva será un documento, que tendrá un identificador único.

Configuration Service (Servicio de Configuración)

El servicio de configuración permite crear y administrar el dominio de búsqueda. Esto sirve para indexar, escalar e implementar todo esto en varias zonas de disponibilidad.

Search Service (Servicio de Busqueda)

Con todo lo anterior configurado se podrá probar el dominio y añadir parámetros de consulta manejados por el servicio de búsqueda. El servicio de búsqueda maneja las solicitudes de búsqueda y sugerencias para el área. El servicio de búsqueda tendrá un único punto final HTTP para realizar consultas.

Amazon Cloud Search admite un lenguaje de consulta enriquecido el cual ayuda a los usuarios a crear consultas de búsqueda de información, filtrado de datos, etc.

Ventajas de CloudSearch

Simplicidad

Es posible administrar este servicio desde la consola de administración de AWS, desde CLI de AWS y desde AWS SDK. Es posible añadir e eliminar facilmente campos de indexación y personalizar las opciones de búsqueda como el facetado o resaltado. Además una vez cargados los datos, no es necesario volver a cargarlos.

Escalabilidad

Amazon CloudSearch ofrece escalado automático, es decir, que a medida que el volumen de datos o consultas cambien, Amazon CloudSearch puede aumentar o reducir los recursos de su dominio de búsqueda según sea necesario.

Fiabilidad

Amazon CloudSearch ofrece características de monitoreo y recuperación automáticas de sus dominios de búsqueda. Cuando la opción Multi-AZ está habilitada, Amazon CloudSearch aprovisiona y mantiene recursos para un dominio de búsqueda en dos zonas de disponibilidad a fin de garantizar una alta disponibilidad.

Alto Rendimiento

Amazon CloudSearch garantiza una latencia baja y un alto rendimiento, incluso a gran escala, mediante la fragmentación automática y el escalado automático horizontal y vertical.

Entre otras características es importante mencionar que es completamente administrado y contiene una gran variedad de características de busqueda. Además es muy rentable, ya que solo pagas lo que usas, y por supuesto, muy seguro, ya que soporta HTTPS y se integra con IAM para controlar el acceso.

En este post veremos paso a paso como crear tu propio dominio de CloudSearch. Amazon CloudSearch tiene una prueba gratuita la cual utilizaremos para hacer la demo en este post. Para realizar esta demostración simplemente necesitaremos una cuenta de AWS.

Creación de un dominio con Amazon CloudSearch

En primer lugar buscaremos CloudSearch en nuestra consola de AWS.

CloudSearchLaunchPage

Pulsaremos el botón «create a new search domain». A continuación debemos darle un nombre único ya que formará parte del dominio de CloudSearch.

A continuación, veremos un par de opciones para configurar el tamaño de su instancia y el recuento de replicaciones. El tamaño del caso y el recuento de replicaciones es directamente proporcional al tamaño de los datos y al volumen de las solicitudes. Si trabajamos con un conjunto extenso de datos, es recomendable utilizar un tipo de instancia más significativo. Por otro lado, si esperamos una gran cantidad de solicitudes simultáneas, debemos aumentar el recuento de replicaciones.

CreateNewSeachDomain

Dejaremos la opción «Use Default» en todas ellas y pulsaremos el botón de continuar. A continuación nos aparecerá una pantalla en la que debemos seleccionar el origen de los datos que queremos utilizar. Podemos utilizar archivos de texto (en formatos .json, .xml, .csv o .txt), objetos alojados en un AWS S3, items almacenados en AWS DynamoDB o utilizar configuraciones manuales o predefinidas. Nosotros escogeremos un archivo de texto: data.csv.

IndexFieldsAWSCloudSearch

La configuración de los índices es la parte mas importante. En la mayoría de las veces Amazon CloudSearch indexará automáticamente los datos y reflejará los datos en pocos minutos. Cada vez que hagamos una modificación en los datos, deberemos volver a indexarlos. En este caso dejaremos la configuración que nos ofrece por defecto.

indexDataAWSCloudSearch

A continuación debemos configurar las políticas de acceso. Amazon Cloud Search ofrece varias formas de permitir o restringir el acceso a dicho módulo y a dicho dominio. Tenemos 4 opciones configuradas previamente que nos ayudarán con esta parte. Nosotros usaremos la primera.

PolicyConfigAWSCloudSearch

Por último nos pondrá un resumen de todo lo que hemos configurado previamente. Pulsaremos confirmar. Con esto abremos configurado nuestro AWS CloudSearch.

CongratulationsAWS

Una vez hemos realizado dichos pasos, estaremos en el dashboard donde ya podremos realizar acciones con nuestro dominio, el cual tardará unos 10 minutos en estar operativo. Con esta herramienta configurada podremos subir archivos y hacer busquedas en ellos.

Con todo esto habremos configurado nuestro dominio con AWS CloudSearch.

Autor/a: Susana Santos Moreno

Curso: Desarrollo Web Full Stack, MultiCloud y Multiplataforma

Centro: Tajamar

Año académico: 2020 – 2021

Código/ recursos utilizados/ Otros datos de interés: enlace a Github y Linkedin.

Leave a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.